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 @@
-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.
Here are some terms that we will use in this repo:
.svg
" refers to the svg
versions of the Icons.svg
" refers to the svg
versions of the 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.
/icons
For the technology name, make the file and folder name lowercase and concatenate them. For example:
+angularjs
or just angular
amazonwebservices
microsoftsqlserver
Each icon/svg can come in different versions. So far, we have:
devicon.json
so they can be found with either the "original" or "plain" naming convention. Note: this only applies to font icon versions only, not the SVG versions.
-
Before you submit your logos/svgs, please ensure that they meet the following standard:
(Icon name)-(original|plain|line)(-wordmark?).
(Technology name)-(original|plain|line)(-wordmark?).
.svg
file contains one version of an icon in a 0 0 128 128
viewbox. You can use a service like resize-image for scaling the svg.svg
element does not need the height
and width
attributes. However, if you do use it, ensure their values are either "128"
or "128px"
. Ex: height="128"
.svg
must use the fill
attribute instead of using classes
for colors. See here for more details.(Icon name)-(original|plain|line)(-wordmark?).
(Technology name)-(original|plain|line)(-wordmark?).
+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. +
+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+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. +
+ ++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. +
+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 @@
- GO TO REPO + GO TO THE REPOSITORY
++ DISCORD SERVER +