diff --git a/.github/workflows/peek_icons.yml b/.github/workflows/peek_icons.yml index ac5062bdb..20f3455f1 100644 --- a/.github/workflows/peek_icons.yml +++ b/.github/workflows/peek_icons.yml @@ -3,7 +3,10 @@ on: pull_request: types: [labeled] jobs: - build: + peek: + # four outcomes: successful check and upload, + # unsuccessful check (fail due to user), + # fail due to system, skipped name: Peek Icons if: github.event.label.name == 'bot:peek' runs-on: windows-2019 @@ -20,6 +23,18 @@ jobs: python -m pip install --upgrade pip pip install -r ./.github/scripts/requirements.txt + - name: Save the PR number in an artifact + shell: bash + env: + PR_NUM: ${{ github.event.number }} + run: echo $PR_NUM > pr_num.txt + + - name: Upload the PR number + uses: actions/upload-artifact@v2 + with: + name: pr_num + path: ./pr_num.txt + - name: Run icomoon_peek.py env: PR_TITLE: ${{ github.event.pull_request.title }} @@ -36,21 +51,9 @@ jobs: name: screenshots path: ./screenshots/*.png - - name: Save the pr num in an artifact - shell: bash - env: - PR_NUM: ${{ github.event.number }} - run: echo $PR_NUM > pr_num.txt - - - name: Upload the pr num - uses: actions/upload-artifact@v2 - with: - name: pr_num - path: ./pr_num.txt - - name: Upload geckodriver.log for debugging purposes uses: actions/upload-artifact@v2 if: failure() with: name: geckodriver-log - path: ./geckodriver.log \ No newline at end of file + path: ./geckodriver.log diff --git a/.github/workflows/post_check_svgs_comment.yml b/.github/workflows/post_check_svgs_comment.yml index cce4eba31..25dcacf68 100644 --- a/.github/workflows/post_check_svgs_comment.yml +++ b/.github/workflows/post_check_svgs_comment.yml @@ -35,21 +35,21 @@ jobs: with: path: ./svg_err_messages/svg_err_messages.txt - - name: Comment on the PR about the result - Success - uses: jungwinter/comment@v1 # let us comment on a specific PR - if: success() && steps.err_message_reader.outputs.content == '1' - env: - MESSAGE: | - Hi! - I'm Devicons' SVG-Checker Bot and everything looks great. Good job! + # - name: Comment on the PR about the result - Success + # uses: jungwinter/comment@v1 # let us comment on a specific PR + # if: success() && steps.err_message_reader.outputs.content == '1' + # env: + # MESSAGE: | + # Hi! + # I'm Devicons' SVG-Checker Bot and everything looks great. Good job! - Have a nice day, - SVG-Checker Bot :grin: - with: - type: create - issue_number: ${{ steps.pr_num_reader.outputs.content }} - token: ${{ secrets.GITHUB_TOKEN }} - body: ${{ env.MESSAGE }} + # Have a nice day, + # SVG-Checker Bot :grin: + # with: + # type: create + # issue_number: ${{ steps.pr_num_reader.outputs.content }} + # token: ${{ secrets.GITHUB_TOKEN }} + # body: ${{ env.MESSAGE }} - name: Comment on the PR about the result - SVG Error uses: jungwinter/comment@v1 # let us comment on a specific PR @@ -79,6 +79,11 @@ jobs: token: ${{ secrets.GITHUB_TOKEN }} body: ${{ format(env.MESSAGE, steps.err_message_reader.outputs.content) }} + # if we posted error messages before, we fail this entire workflow + - name: Fail workflow is there is an error. + uses: cutenode/action-always-fail@v1.0.1 + if: success() && (steps.err_message_reader.outputs.content != '0' && steps.err_message_reader.outputs.content != '1') + - name: Comment on the PR about the result - Failure uses: jungwinter/comment@v1 # let us comment on a specific PR if: failure() diff --git a/.github/workflows/post_peek_screenshot.yml b/.github/workflows/post_peek_screenshot.yml index 541441f37..0a7a3ae92 100644 --- a/.github/workflows/post_peek_screenshot.yml +++ b/.github/workflows/post_peek_screenshot.yml @@ -8,10 +8,16 @@ jobs: post_screenshots_in_comment: name: Post the screenshot runs-on: ubuntu-18.04 + if: github.event.action == 'completed' && github.event.workflow_run.conclusion != 'skipped' + env: + # three possible values: 'skipped', 'success', 'failure' + # have to print github.event to console to see these values + # note: can't use this env variable up in the if statement above for some reason. + # I don't think it's an ordering issue cause it seems 'if' is auto evaluate first + PEEK_STATUS: ${{ github.event.workflow_run.conclusion }} steps: - - name: Check if the trigger run worked. If not, fail the current run. - if: github.event.workflow_run.conclusion != 'success' - uses: cutenode/action-always-fail@v1.0.1 + - name: Check state of last run + run: echo $PEEK_STATUS - name: Download workflow artifact uses: dawidd6/action-download-artifact@v2.11.0 @@ -21,7 +27,6 @@ jobs: run_id: ${{ github.event.workflow_run.id }} - name: Read the pr_num file - if: success() id: pr_num_reader uses: juliangruber/read-file-action@v1.0.0 with: @@ -29,6 +34,7 @@ jobs: - name: Upload screenshot of the newly made icons gotten from the artifacts id: icons_overview_img_step + if: env.PEEK_STATUS == 'success' && success() uses: devicons/public-upload-to-imgur@v2.2.1 with: path: ./screenshots/new_icons.png @@ -37,17 +43,15 @@ jobs: - name: Upload zoomed in screenshot of the newly made icons gotten from the artifacts id: icons_detailed_img_step uses: devicons/public-upload-to-imgur@v2.2.1 - if: success() + if: env.PEEK_STATUS == 'success' && success() with: path: ./screenshots/screenshot_*.png client_id: ${{secrets.IMGUR_CLIENT_ID}} - name: Comment on the PR about the result - Success uses: jungwinter/comment@v1 # let us comment on a specific PR - if: success() + if: env.PEEK_STATUS == 'success' && success() env: - OVERVIEW_IMG_MARKDOWN: ${{ fromJSON(steps.icons_overview_img_step.outputs.markdown_urls)[0] }} - DETAILED_IMGS_MARKDOWN: ${{ join(fromJSON(steps.icons_detailed_img_step.outputs.markdown_urls), '') }} MESSAGE: | Hi there, @@ -71,10 +75,13 @@ jobs: type: create issue_number: ${{ steps.pr_num_reader.outputs.content }} token: ${{ secrets.GITHUB_TOKEN }} - body: ${{format(env.MESSAGE, env.OVERVIEW_IMG_MARKDOWN, env.DETAILED_IMGS_MARKDOWN)}} + body: > + ${{ format(env.MESSAGE, + fromJSON(steps.icons_overview_img_step.outputs.markdown_urls)[0], + join(fromJSON(steps.icons_detailed_img_step.outputs.markdown_urls), '')) }} - name: Comment on the PR about the result - Failure - if: failure() || cancelled() + if: failure() || env.PEEK_STATUS == 'failure' uses: jungwinter/comment@v1 # let us comment on a specific PR env: MESSAGE: | @@ -88,7 +95,7 @@ jobs: - Your icon information has been added to the `devicon.json` as seen [here](https://github.com/devicons/devicon/blob/master/CONTRIBUTING.md#updateDevicon) - Your PR title follows the format seen [here](https://github.com/devicons/devicon/blob/master/CONTRIBUTING.md#overview) - Once everything is fixed, I will try. If I still fail (sorry!), the maintainers will investigate further. + I will retry once everything is fixed. If I still fail (sorry!) or there are other erros, the maintainers will investigate. Best of luck, Peek Bot :relaxed: diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml new file mode 100644 index 000000000..859b053da --- /dev/null +++ b/.github/workflows/stale.yml @@ -0,0 +1,22 @@ +name: 'Stale' +on: + schedule: + - cron: '30 1 * * *' + +jobs: + stale: + runs-on: ubuntu-latest + steps: + - uses: actions/stale@main + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + stale-pr-message: 'Hello there, + we noticed that this PR has been inactive for a while now. If there are any changes which are suitable for our repository, + we would love to have it. It would be great if you can continue with this PR, but if you cannot, we might fork your changes and merge the changes ourselves. + + Since GitHub tracks contributions by commits, you will still be credited. + + Let us know what you think 😃' + stale-pr-label: 'stale' + days-before-pr-stale: 30 + days-before-pr-close: -1 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 86c45f6a5..a14554582 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,6 @@

Contributing to Devicon

-First of all, thanks for taking the time to contribute! This project can only grow and live by your countless contributions. To keep this project maintable we developed some guidelines for contributions. +First of all, thanks for taking the time to contribute! This project can only grow and live by your countless contributions. To keep this project maintainable, we have developed some guidelines for our contributors.

Table of Content

@@ -15,6 +15,7 @@ First of all, thanks for taking the time to contribute! This project can only gr
  • Requesting An Icon
  • Maintainer/Reviewer/Teams
  • Regarding the Build Script
  • +
  • Discord server
  • Release strategy, conventions, preparation and execution
  • @@ -22,14 +23,15 @@ First of all, thanks for taking the time to contribute! This project can only gr

    Terms

    Here are some terms that we will use in this repo:

      -
    1. "Icon" refers to the set of svgs/icons of a technology/tool. Ex: We might refer to the React svgs and React icons as the React Icon
    2. -
    3. "SVG/.svg" refers to the svg versions of the Icons.
    4. -
    5. "icons" (lowercase) refers to the font icon versions of the Icons.
    6. +
    7. "Technology" is used to describe a software, libraries, tool, etc...
    8. +
    9. "Icon" refers to the svgs and icons version of a technology as a whole. +
    10. "SVG/svg" refers to the svg versions of the Icons.
    11. +
    12. "icon" (lowercase) refers specficially to the font icon versions of the Icons.

    Overview on Submitting Icons

    -

    Here is an overview of what you have to do to submit your icons to the repo.

    +

    Here is what you have to do to submit your icons to the repo.

    1. Create the svgs for each svg versions that you have
    2. Put the svgs of each Icon into its own folders in /icons
    3. @@ -44,6 +46,13 @@ First of all, thanks for taking the time to contribute! This project can only gr

      Versions and Naming Conventions

      +

      For the technology name, make the file and folder name lowercase and concatenate them. For example:

      + +

      Each icon/svg can come in different versions. So far, we have:

      @@ -75,7 +83,7 @@ First of all, thanks for taking the time to contribute! This project can only gr

      Before you submit your logos/svgs, please ensure that they meet the following standard:


      @@ -301,6 +309,12 @@ As an example, let's assume you have created the svgs for Redhat and Amazon Web
    4. Publishing a new release to npm; See #288
    5. +

      Discord server

      +

      +We are running a Discord server. You can go here to talk, discuss, and more with the maintainers and other people, too. Here's the invitation: https://discord.gg/hScy8KWACQ. If you don't have a GitHub account but want to suggest ideas or new icons, you can do that here in our Discord channel. +Note that the Discord server is unofficial, and Devicons is still being maintained via GitHub. +

      +

      Release strategy, conventions, preparation and execution

      Release strategy

      Devicon does not follow a strict release plan. A new release is depended on current amount of contributions, required bugfixes/patches and will be discussed by the team of maintainers.

      @@ -312,6 +326,7 @@ As an example, let's assume you have created the svgs for Redhat and Amazon Web
    6. MINOR version when you add functionality (like a new icon) in a backwards compatible manner, and
    7. PATCH version when you make backwards compatible bug fixes.
    8. +
      Release preparation and execution
      1. Define the next release version number based on the conventions
      2. diff --git a/README.md b/README.md index 160d27b9e..c0e6bae1a 100644 --- a/README.md +++ b/README.md @@ -51,6 +51,7 @@
      3. Getting started
      4. Requesting icon
      5. Contributing
      6. +
      7. Stale pull requests
      8. Go build yourself
      @@ -155,6 +156,17 @@ Add css rules in your stylesheet to see how you can contribute to this project.

      +

      Stale pull requests

      +

      +After a pull request has been open for over 30 days with no activity or response from the author, it'll be automatically marked as stale. We might fork your changes and merge the changes ourselves. Since GitHub tracks contributions by commits, you will be credited. +

      + +

      Discord server

      +

      +We are running a Discord server. You can go here to talk, discuss, and more with the maintainers and other people, too. Here's the invitation: https://discord.gg/hScy8KWACQ. +Note that the Discord server is unofficial, and Devicons is still being maintained via GitHub. +

      +

      Go build yourself

      Feel free to follow those steps when you want to build the font diff --git a/devicon.json b/devicon.json index b5af57657..00cd4474c 100644 --- a/devicon.json +++ b/devicon.json @@ -772,6 +772,27 @@ "color": "#f7974e", "aliases": [] }, + { + "name": "dart", + "tags": [ + "programming", + "language" + ], + "versions": { + "svg": [ + "original", + "original-wordmark", + "plain", + "plain-wordmark" + ], + "font": [ + "plain", + "plain-wordmark" + ] + }, + "color": "#00A8E1", + "aliases": [] + }, { "name": "debian", "tags": [ @@ -904,6 +925,23 @@ "color": "#1384c8", "aliases": [] }, + { + "name": "dotnetcore", + "tags": [ + "framework" + ], + "versions": { + "svg": [ + "original", + "plain" + ], + "font": [ + "plain" + ] + }, + "color": "#623697", + "aliases": [] + }, { "name": "drupal", "tags": [ @@ -924,6 +962,29 @@ "color": "#0073BA", "aliases": [] }, + { + "name": "digitalocean", + "tags": [ + "cloud", + "hosting", + "database", + "storage" + ], + "versions": { + "svg": [ + "original", + "original-wordmark", + "plain", + "plain-wordmark" + ], + "font": [ + "plain", + "plain-wordmark" + ] + }, + "color": "#0080FF", + "aliases": [] + }, { "name": "electron", "tags": [ @@ -1061,6 +1122,23 @@ } ] }, + { + "name": "figma", + "tags": [ + "design" + ], + "versions": { + "svg": [ + "original", + "plain" + ], + "font": [ + "plain" + ] + }, + "color": "#f24e1e", + "aliases": [] + }, { "name": "firebase", "tags": [ @@ -1412,6 +1490,26 @@ "color": "#feb672", "aliases": [] }, + { + "name": "graphql", + "tags": [ + "language", + "data", + "query" + ], + "versions": { + "svg": [ + "plain", + "plain-wordmark" + ], + "font": [ + "plain", + "plain-wordmark" + ] + }, + "color": "#e434aa", + "aliases": [] + }, { "name": "groovy", "tags": [ @@ -1970,6 +2068,32 @@ "color": "#0076b2", "aliases": [] }, + { + "name": "lua", + "tags": [ + "programming", + "language", + "object-oriented", + "scripting", + "procedural", + "prototype-based", + "functional" + ], + "versions": { + "svg": [ + "original", + "original-wordmark", + "plain", + "plain-wordmark" + ], + "font": [ + "plain", + "plain-wordmark" + ] + }, + "color": "#000080", + "aliases": [] + }, { "name": "linux", "tags": [ @@ -2139,6 +2263,37 @@ "color": "#DF234F", "aliases": [] }, + { + "name": "nextjs", + "tags": [ + "framework" + ], + "versions": { + "svg": [ + "original", + "line", + "original-wordmark" + ], + "font": [ + "original", + "plain", + "line", + "original-wordmark", + "plain-wordmark" + ] + }, + "color": "#000000", + "aliases": [ + { + "base": "original", + "alias": "plain" + }, + { + "base": "original-wordmark", + "alias": "plain-wordmark" + } + ] + }, { "name": "nginx", "tags": [ @@ -2445,6 +2600,26 @@ "color": "#ffd845", "aliases": [] }, + { + "name": "phoenix", + "tags": [ + "framework" + ], + "versions": { + "svg": [ + "original", + "original-wordmark", + "plain", + "plain-wordmark" + ], + "font": [ + "plain", + "plain-wordmark" + ] + }, + "color": "#F15524", + "aliases": [] + }, { "name": "r", "tags": [ @@ -2835,6 +3010,26 @@ } ] }, + { + "name": "spring", + "tags": [ + "framework" + ], + "versions": { + "svg": [ + "original", + "original-wordmark", + "plain", + "plain-wordmark" + ], + "font": [ + "plain", + "plain-wordmark" + ] + }, + "color": "#5FB832", + "aliases": [] + }, { "name": "microsoftsqlserver", "tags": [ @@ -2983,6 +3178,27 @@ "color": "#bb2031", "aliases": [] }, + { + "name": "thealgorithms", + "tags": [ + "organization", + "algorithms" + ], + "versions": { + "svg": [ + "original", + "original-wordmark", + "plain", + "plain-wordmark" + ], + "font": [ + "plain", + "plain-wordmark" + ] + }, + "color": "#00BCB4", + "aliases": [] + }, { "name": "trello", "tags": [ @@ -3181,6 +3397,26 @@ "color": "#41B883", "aliases": [] }, + { + "name": "weblate", + "tags": [ + "localization" + ], + "versions": { + "svg": [ + "original", + "plain", + "original-wordmark", + "plain-wordmark" + ], + "font": [ + "plain", + "plain-wordmark" + ] + }, + "color": "#2eccaa", + "aliases": [] + }, { "name": "webpack", "tags": [ diff --git a/docs/assets/css/discord-logo.svg b/docs/assets/css/discord-logo.svg new file mode 100644 index 000000000..08daae684 --- /dev/null +++ b/docs/assets/css/discord-logo.svg @@ -0,0 +1 @@ + diff --git a/docs/assets/css/style.css b/docs/assets/css/style.css index 1c1d2ae22..2c4bb129f 100644 --- a/docs/assets/css/style.css +++ b/docs/assets/css/style.css @@ -8,6 +8,14 @@ html { *, *::after, *::before { box-sizing: inherit; } +.discord-logo:before { + content: ""; + background-image: url("discord-logo.svg"); + height: 40px; + width: 40px; + display: inline-block; + background-size: cover; +} .icon-brush:before { content: "\e600"; } diff --git a/docs/index.html b/docs/index.html index 98aed9885..8c9dec6b0 100644 --- a/docs/index.html +++ b/docs/index.html @@ -88,17 +88,20 @@

      SVG versions

      -

      Github Repo

      -
      If you prefer a local install, you can download all the files on the github repo.
      +

      GitHub repository

      +
      If you prefer a local install, you can download all the files on the GitHub repository.

      DOWNLOAD

      - GO TO REPO + GO TO THE REPOSITORY

      CONTRIBUTE

      +

      + DISCORD SERVER +