Skip to content

Commit

Permalink
Merge branch 'develop' into new_icon_arduino
Browse files Browse the repository at this point in the history
  • Loading branch information
Thomas-Boi authored Apr 27, 2021
2 parents 74e3ec9 + 7c387e1 commit 2a585e0
Show file tree
Hide file tree
Showing 19 changed files with 229 additions and 49 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/build_icons.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ jobs:
I'm Devicon's Build Bot and I just built some new font files and devicon.min.css file.
Here are all the files that were built into icons:
Here are all the files that were built into icons (the new ones are those without highlight):
![Files Built]({0})
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/post_peek_screenshot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ jobs:
Hi there,
I'm Devicons' Peek Bot and I just peeked at the icons that you wanted to add using [icomoon.io](https://icomoon.io/app/#/select).
Here is the result below:
Here is the result below (top right):
{0}
Expand Down
74 changes: 59 additions & 15 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ First of all, thanks for taking the time to contribute! This project can only gr
<li><a href="#example">Example</a></li>
<li><a href="#requestingIcon">Requesting An Icon</a></li>
<li><a href="#teams">Maintainer/Reviewer/Teams</a></li>
<li><a href="#buildScript">Regarding the Build Script</a></li>
<li><a href="#buildScript">The Build Script: how it works and its quirks</a></li>
<li><a href="#discordServer">Discord server</a></li>
<li><a href="#release">Release strategy, conventions, preparation and execution</a></li>
</ul>
Expand Down Expand Up @@ -115,14 +115,29 @@ First of all, thanks for taking the time to contribute! This project can only gr
<pre>
<code>
{
"name": string, // the official name of the technology. Must be lower case, no space and don't have the dash '-' character.
"tags": string[], // list of tags relating to the technology for search purpose
// the official name of the technology. Must be lower case, no space and don't have the dash '-' character.
"name": string,

// list of tags relating to the technology for search purpose
"tags": string[],

// keep tracks of the different versions that you have.
"versions": {
"svg": VersionString[], // list the svgs that you have
"font": VersionString[] // list the fonts acceptable versions that you have
// list the svgs that you have
"svg": VersionString[],

// list the fonts acceptable versions that you have
"font": VersionString[]
},
"color": string, // the main color of the logo. Only track 1 color
"aliases": AliasObj[] // keeps track of the aliases for the font versions ONLY

// the main color of the logo. Only track 1 color
"color": string,

// keeps track of the aliases for the font versions ONLY
// see the <a href="#example">Example</a> section for more details
// NOTE: this attribute is not required from now on (see <a href='https://github.com/devicons/devicon/discussions/465'>this</a>)
// it is only being kept for backward compatibility
"aliases": AliasObj[]
}
</code>
</pre>
Expand Down Expand Up @@ -294,21 +309,50 @@ As an example, let's assume you have created the svgs for Redhat and Amazon Web
</p>

<hr>
<h2 id='buildScript'>Regarding The Build Script</h2>
<h2 id='buildScript'>The Build Script: how it works and its quirks</h2>
<p>To make adding icons easier for repo maintainers, we rely on GitHub Actions, Python, Selenium, and Gulp to automate our tasks.</p>
<p>So far, the tasks in the build script are:</p>
<ul>
<li>Upload svgs to <a href="https://icomoon.io/app/#/select">icomoon.io</a> and get the icons back. For details, see <a href="https://github.com/devicons/devicon/issues/252"> the original disscussion</a>, <a href="https://github.com/devicons/devicon/pull/268">this PR that introduce the feature</a> and <a href="https://github.com/devicons/devicon/issues/300">the final changes to it.</a></li>
<li>Preview what an svg would look like as an icon using the upload svgs script (see <a href="https://github.com/devicons/devicon/pull/412">this</a></li>
<li>Build, combine, and minify CSS files. For details, see <a href="https://github.com/devicons/devicon/pull/290">this</a></li>
</ul>
<p>There are also other tasks that we are automating, such as:</p>
<ul>
<li>Send screenshots to Imgur and upload it to a PR. See <a href="https://github.com/devicons/devicon/pull/398">the PR for the Imgur action</a> and <a href="https://github.com/devicons/devicon/pull/481"> the PR for uploading the pictures to a PR</a>
<li>Ensure code quality is up to standard</li>
<li>Upload svgs to <a href="https://icomoon.io/app/#/select">icomoon.io</a> and take a screenshot to check that it looks good.
<li>Comment on the PR so maintainers don't have to manually upload icon result.</li>
<li>Publishing a new release to <a href="https://www.npmjs.com/package/devicon">npm</a>; See <a href="https://github.com/devicons/devicon/issues/288">#288</a></li>
</ul>

<p>There are some quirks and bugs that the build scripts might run into. Listed below are the common ones and their solution</p>
<ol>
<li><b>No connection could be made because the target machine actively refused it. (os error 10061)</b>
<ul>
<li>See <a href="https://github.com/devicons/devicon/runs/2292634069?check_suite_focus=true">this action</a> for an example.</li>
<li>Caused by Selenium being unable to connect to the Icomoon website. It is unknown why this happens but the hypothesis is Icomoon blocks Selenium's multiple connection request and treats them as bots. See <a href="https://github.com/devicons/devicon/pull/544#issuecomment-812147713">this</a>.</li>
<li>Solution: wait for a few minutes and rerun the script. Repeat until it works.</li>
</ul>
</li>
<li><b>SHA Integrity</b>
<ul>
<li>See <a href="https://github.com/devicons/devicon/runs/2310036084?check_suite_focus=true">this action</a> for an example.</li>
<li>Caused by the <code>package-lock.json</code>. Most likely the result of a dependabot update but not 100% sure.</li>
<li>Solution: Remove the <code>package-lock.json</code> and run `npm install` to generate a new file. Commit and push.</li>
</ul>
</li>
<li><b>Wrong PR Title</b>
<ul>
<li>The <code>bot-peek</code> script relies on the PR title to find the icon that was added in the PR. If the format doesn't match what is specified in <a href="#overview">Overview on Submitting Icon</a>, the bot will fail.</li>
<li>Solution: Ensure the name of the PR follows the convention.</li>
</ul>
</li>
<li><b>Peek bot fails when an icon is updated</b>
<ul>
<li>See <a href="https://github.com/devicons/devicon/pull/554">this PR</a> for an example.</li>
<li>The <code>bot-peek</code> script compares the <code>devicon.json</code> and <code>icomoon.json</code> to limit the icon uploading process. An update in the repo won't change anything in the <code>devicon.json</code> and <code>icomoon.json</code> so the script would report that nothing is found.</li>
<li>Solution: Follow the steps laid out <a href="https://github.com/devicons/devicon/pull/554#issuecomment-816860577">here</a></li>
</ul>
</li>
</ol>

<h2 id="discordServer">Discord server</h2>
<p>
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.
Expand All @@ -335,10 +379,10 @@ We are running a Discord server. You can go here to talk, discuss, and more with
<li>Push the branch <code>draft-release</code></li>
<li>Manually trigger the workflow <code><a href="https://github.com/devicons/devicon/actions/workflows/build_icons.yml">build_icons.yml</a></code> (which has a <code>workflow_dispatch</code> event trigger) and select the branch <code>draft-release</code> as target branch. This will build a font version of all icons using icomoon and automatically creates a pull request to merge the build result back into <code>draft-release</code></li>
<li>Review and approve the auto-create pull request created by the action of the step above</li>
<li>Create a pull request towards <code>development</code>. Mention the release number in the pull request title and add information about all new icons, fixes, features and enhancements in the description of the pull request. Take the commits as a guideline. It's also a good idea to mention and thank all contributions who participated in the release (take description of <code><a href="https://github.com/devicons/devicon/pull/504">#504</a></code> as an example).</li>
<li>Wait for review and approval of the pull request (<b>DON'T</b> perform a squash-merge)</li>
<li>Create a pull request towards <code>development</code>. Mention the release number in the pull request title (like "Build preparation for release v<i>MAJOR</i>.<i>MINOR</i>.<i>PATCH</i>) and add information about all new icons, fixes, features and enhancements in the description of the pull request. Take the commits as a guideline. It's also a good idea to mention and thank all contributions who participated in the release (take description of <code><a href="https://github.com/devicons/devicon/pull/504">#504</a></code> as an example).</li>
<li>Wait for review and approval of the pull request (you can perform a squash-merge)</li>
<li>Once merged create a pull request with BASE <code>master</code> and HEAD <code>development</code>. Copy the description of the earlier pull request.</li>
<li>Since it was already approved in the 'development' stage a maintainer is allowed to merge it (<b>DON'T</b> perform a squash-merge).</li>
<li>Create a <a href="https://github.com/devicons/devicon/releases/new">new release</a> using v<i>MAJOR</i>.<i>MINOR</i>.<i>PATCH</i> as tag and release title. Use the earlier created description as description of the release.</li>
<li>Publishing the release will trigger the <a href="/.github/workflows/npm_publish.yml">npm_publish.yml</a> workflow which will execute a <code>npm publish</code> leading to a updated <a href="https://www.npmjs.com/package/devicon">npm package</a> (v<i>MAJOR</i>.<i>MINOR</i>.<i>PATCH</i>).</li>
</ol>
</ol>
91 changes: 80 additions & 11 deletions devicon.css
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
@font-face {
font-family: 'devicon';
src: url('fonts/devicon.eot?e4qd2c');
src: url('fonts/devicon.eot?e4qd2c#iefix') format('embedded-opentype'),
url('fonts/devicon.ttf?e4qd2c') format('truetype'),
url('fonts/devicon.woff?e4qd2c') format('woff'),
url('fonts/devicon.svg?e4qd2c#devicon') format('svg');
src: url('fonts/devicon.eot?jsodij');
src: url('fonts/devicon.eot?jsodij#iefix') format('embedded-opentype'),
url('fonts/devicon.ttf?jsodij') format('truetype'),
url('fonts/devicon.woff?jsodij') format('woff'),
url('fonts/devicon.svg?jsodij#devicon') format('svg');
font-weight: normal;
font-style: normal;
font-display: block;
Expand All @@ -25,6 +25,81 @@
-moz-osx-font-smoothing: grayscale;
}

.devicon-weblate-plain-wordmark:before {
content: "\e999";
}
.devicon-weblate-plain:before {
content: "\e99a";
}
.devicon-thealgorithms-plain-wordmark:before {
content: "\e99b";
}
.devicon-thealgorithms-plain:before {
content: "\e99c";
}
.devicon-spring-plain-wordmark:before {
content: "\e99d";
}
.devicon-spring-plain:before {
content: "\e99e";
}
.devicon-rails-plain-wordmark:before {
content: "\e99f";
}
.devicon-rails-plain:before {
content: "\e9a0";
}
.devicon-phoenix-plain-wordmark:before {
content: "\e9a1";
}
.devicon-phoenix-plain:before {
content: "\e9a2";
}
.devicon-nextjs-original-wordmark:before {
content: "\e9a3";
}
.devicon-nextjs-line:before {
content: "\e9a4";
}
.devicon-nextjs-original:before {
content: "\e9a5";
}
.devicon-lua-plain-wordmark:before {
content: "\e9a6";
}
.devicon-lua-plain:before {
content: "\e9a7";
}
.devicon-graphql-plain-wordmark:before {
content: "\e9a8";
}
.devicon-graphql-plain:before {
content: "\e9a9";
}
.devicon-gitter-plain-wordmark:before {
content: "\e9aa";
}
.devicon-gitter-plain:before {
content: "\e9ab";
}
.devicon-figma-plain:before {
content: "\e9ac";
}
.devicon-digitalocean-plain-wordmark:before {
content: "\e9ad";
}
.devicon-digitalocean-plain:before {
content: "\e9ae";
}
.devicon-dotnetcore-plain:before {
content: "\e9af";
}
.devicon-dart-plain-wordmark:before {
content: "\e9b0";
}
.devicon-dart-plain:before {
content: "\e9b1";
}
.devicon-r-plain:before {
content: "\e98e";
}
Expand Down Expand Up @@ -862,12 +937,6 @@
.devicon-python-plain:before {
content: "\eb89";
}
.devicon-rails-plain-wordmark:before {
content: "\eba2";
}
.devicon-rails-plain:before {
content: "\eba3";
}
.devicon-ruby-plain-wordmark:before {
content: "\ebc9";
}
Expand Down
38 changes: 38 additions & 0 deletions devicon.json
Original file line number Diff line number Diff line change
Expand Up @@ -2370,6 +2370,26 @@
}
]
},
{
"name": "nixos",
"tags": [
"os"
],
"versions": {
"svg": [
"original",
"original-wordmark",
"plain",
"plain-wordmark"
],
"font": [
"plain",
"plain-wordmark"
]
},
"color": "#5277C3",
"aliases": []
},
{
"name": "nodejs",
"tags": [
Expand Down Expand Up @@ -2489,6 +2509,24 @@
"color": "#F18803",
"aliases": []
},
{
"name": "perl",
"tags": [
"programming",
"language"
],
"versions": {
"svg": [
"original",
"plain"
],
"font": [
"plain"
]
},
"color": "#212177",
"aliases": []
},
{
"name": "photoshop",
"tags": [
Expand Down
2 changes: 1 addition & 1 deletion devicon.min.css

Large diffs are not rendered by default.

Binary file modified fonts/devicon.eot
Binary file not shown.
27 changes: 25 additions & 2 deletions fonts/devicon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified fonts/devicon.ttf
Binary file not shown.
Binary file modified fonts/devicon.woff
Binary file not shown.
2 changes: 1 addition & 1 deletion icomoon.json

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions icons/nixos/nixos-original-wordmark.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions icons/nixos/nixos-original.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions icons/nixos/nixos-plain-wordmark.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions icons/nixos/nixos-plain.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 2a585e0

Please sign in to comment.