Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nord Docs Transition #112

Closed
9 tasks done
arcticicestudio opened this issue Mar 10, 2019 · 0 comments · Fixed by #114
Closed
9 tasks done

Nord Docs Transition #112

arcticicestudio opened this issue Mar 10, 2019 · 0 comments · Fixed by #114

Comments

@arcticicestudio
Copy link
Contributor

arcticicestudio commented Mar 10, 2019

➜ Please see the corresponding issue nordtheme/web#132 for tasks on the side of Nord Docs.

I'm hyped and happy that the initial launch of Nord Docs, the shiny new website and documentation of Nord, was finally announced.
The release 0.10.0 marks the last version before the next release (0.11.0) that'll be deployed to the production environment/domain at https://www.nordtheme.com.

Time To Say Goodbye

The currently used website (https://arcticicestudio.github.io/nord) is hosted by GitHub Pages using an deprecated GitBook version with an bare template. It was created some time ago to provide at least a simple website instead of only documenting the project in the README, but this was always planned as a transitional solution.

Shiny New Home

Starting from version 0.11.0, all documentations and content assets will be located and served from Nord Docs, the new single-source-of-truth™.
At the same time with the initial launch of the new website the old site will be wiped completely and replaced by a simple index.html file that includes a <meta http-equiv="refresh" /> element to redirect all users to the new domain.

Other changes

There are also some other changes that'll take place with the transition:

No rendered SassDoc anymore

The Sass color palettes of Nord are currently documented with SassDoc from which a static HTML can be generated. Nord's build tools allow to run this generation and also uses a custom theme for the resulting HTML site. Starting from the transition, the generation of the SassDoc files will be removed from Nord including the development dependency for the custom documentation theme!
Since the sources itself won't change the used documentation syntax is still used and there is no breaking change. This comes with three advantages:

  1. Nord maintainers won't be responsible for also keeping these docs up-to-date as well as developing a documentation theme that matches Nord's style.
  2. Users will be able to simply generate it on their own using their preferred custom documentation theme.
  3. The build process will be simplified and the additional step of deploying the generated docs manually to GitHub Pages is not necessary anymore.

According to the statistics the traffic hits for the SassDoc page was almost dead (95% are search engines and bots) so the impact will be almost invisible.

No optimized CSS module anymore

Currently it is possible to build a optimized CSS module using the npm run optimize:css command. This is done by using the clean-css package to optimize, clean and minify the CSS module and saving it as build/nord.css. This also requires to adjust the import path from node_modules/nord/src/nord.css to node_modules/nord/dist/nord.css.

Since most users are building projects using a bundler like Webpack, which will take care of optimizing the CSS module including the addition of vendor prefixes, it is not necessary to provide such an optimized CSS module. The result of the bundlers are generally more accurate, up-to-date, matches the users preferred optimization rules and ensures it fits the projects data processing flow.

Removing the optimized CSS module comes with the positive effects of also removing more development dependencies.

Lightweight And Simpler

Since all documentations will be served by Nord Docs there is no more need for the docs:dev and docs:build npm commands and the logic that behind them. This includes the deletion of the deprecated GitBooks (dev)dependency and the whole docs directory with the actual Markdown documentation source files.

There are also currently a lot of assets for Nord and all of its port project included in the repository. Most of them will also be moved to Nord Docs (or will be replaced by already existing ones) while many will be deleted since they are not used and required anymore.

All these changes will make Nord more lightweight with and cleaner structure and will simplify the build stack enormously.

Retire Travis CI builds

Since almost all Arctic Ice Studio projects already completely moved to Circle CI as single CI provider Nord will now also retire the Travis CI builds. It is not necessary to run both Circle CI and Travis CI at the same time since the Circle CI API version 2.x is by far more advanced and provides all features of Travis CI.

Statistic Comparison

To get some numbers about all these improvements before and after the migration these are the statistics of the current repository state.

| Name                         | Value     | Level of concern               |
| ---------------------------- | --------- | ------------------------------ |
| Overall repository size      |           |                                |
| * Commits                    |           |                                |
|   * Count                    |   173     |                                |
|   * Total size               |  67.4 KiB |                                |
| * Trees                      |           |                                |
|   * Count                    |   332     |                                |
|   * Total size               |   183 KiB |                                |
|   * Total tree entries       |  4.19 k   |                                |
| * Blobs                      |           |                                |
|   * Count                    |   387     |                                |
|   * Total size               |  58.7 MiB |                                |
| * Annotated tags             |           |                                |
|   * Count                    |     2     |                                |
| * References                 |           |                                |
|   * Count                    |    12     |                                |
|                              |           |                                |
| Biggest objects              |           |                                |
| * Commits                    |           |                                |
|   * Maximum size         [1] |  1.30 KiB |                                |
|   * Maximum parents      [2] |     2     |                                |
| * Trees                      |           |                                |
|   * Maximum entries      [3] |    96     |                                |
| * Blobs                      |           |                                |
|   * Maximum size         [4] |  3.48 MiB |                                |
|                              |           |                                |
| History structure            |           |                                |
| * Maximum history depth      |   154     |                                |
| * Maximum tag depth      [5] |     1     |                                |
|                              |           |                                |
| Biggest checkouts            |           |                                |
| * Number of directories  [6] |    18     |                                |
| * Maximum path depth     [6] |     4     |                                |
| * Maximum path length    [6] |    51 B   |                                |
| * Number of files        [7] |   141     |                                |
| * Total size of files    [7] |  49.9 MiB |                                |
| * Number of symlinks         |     0     |                                |
| * Number of submodules       |     0     |                                |

The report has been generated using GitHub's awesome git-sizer project: git-sizer --verbose

Transition Tasks

This issue documents the tasks and their progress during the transition.

  • INTRODUCTION
    • Transfer docs from landing page to new docs about Nord itself and its colors & palettes.
    • Transfer docs from color swatches page to new docs about Nord's color swatches.
    • Delete port project page, it will be replaced by the new ports page.
    • Delete component card, the cards have been implemented as component on the new landing page.
  • GETTING STARTED
    • Transfer docs from installation and usage pages to new docs about how to use Nord as color palette and integrate it into other projects.
  • DEVELOPMENT
    • Transfer, simplify and squeeze docs from requirements, building and testing pages to new docs about how Nord's development tech stack and the contribution guides.
      ⭢ Planned for later release version since the priority is low.
    • Delete changelog and code-of-conduct pages, they'll be replaced with more advanced pages later on, e.g a interactive changelog timeline and roadmap.
  • Remove now unused (dev) dependencies:
    • clean-css-cli
    • cpy-cli
    • del-cli
    • gitbook-cli
    • make-dir-cli
    • sassdoc
    • sassdoc-theme-flippant
  • Retire Travis CI builds.
  • Update outdated metadata like copyright paragraphs and add missing comment headings.
@arcticicestudio arcticicestudio added this to the 0.3.0 milestone Mar 10, 2019
@arcticicestudio arcticicestudio self-assigned this Mar 10, 2019
@arcticicestudio arcticicestudio pinned this issue Mar 10, 2019
arcticicestudio added a commit that referenced this issue Mar 16, 2019
Since almost all Arctic Ice Studio projects already completely moved to
Circle CI (1) as single CI provider Nord will now also retire the
Travis CI (2) builds. It is not necessary to run both Circle CI and
Travis CI at the same time since the Circle CI API version 2.x (3) is by
far more advanced and provides all features of Travis CI.

References:
  (1) https://travis-ci.org
  (2) https://circleci.com
  (3) https://circleci.com/docs

GH-112
arcticicestudio added a commit that referenced this issue Mar 16, 2019
This includes copyright headers with outdated addresses and formats,
unused configuration properties and up-to-date best config practices.

GH-112
arcticicestudio added a commit that referenced this issue Mar 16, 2019
I'm hyped and happy that the initial launch (1) of Nord Docs, the shiny
new website and documentation of Nord, was finally announced (2).
The release 0.10.0 (3) marks the last version before the next release
(0.11.0) that'll be deployed to the production environment/domain at
https://www.nordtheme.com.

>> Time To Say Goodbye

The previously used website (4) (https://arcticicestudio.github.io/nord)
was hosted by GitHub Pages (5) using an deprecated GitBook version with
an bare template. It was created some time ago to provide at least a
simple website instead of only documenting the project in the README,
but this was always planned as a transitional solution.

>> Shiny New Home

Starting from version 0.11.0, all documentations and content assets are
located and served from Nord Docs, the new single-source-of-truth.
At the same time with the initial launch of the new website the old site
will be wiped completely and replaced by a simple `index.html` file that
includes a `<meta http-equiv="refresh" />` element to redirect all users
to the new domain.

>> Other changes

There are also some other changes that took place with this transition:

>>> No rendered SassDoc anymore

The Sass color palettes of Nord were documented with SassDoc from which
a static HTML was generated. Nord's build tools allowed to run this
generation and also uses a custom theme for the resulting HTML site.
Starting from the transition, the generation of the SassDoc files have
been removed from Nord including the development dependency for the
custom documentation theme!
Since the sources itself are not changed the used documentation syntax
is still used and there is no breaking change.

This comes with three advantages:

1. Nord maintainers are not responsible for also keeping these docs
   up-to-date as well as developing a documentation theme that matches
   Nord's style.
2. Users are able to simply generate it on their own using their
   preferred custom documentation theme.
3. The build process has been simplified and the additional step of
   deploying the generated docs manually to GitHub Pages is not
   necessary anymore.

According to the statistics the traffic hits for the SassDoc page was
almost dead (95% are search engines and bots) so the impact is almost
invisible.

>>> No optimized CSS module anymore

Previously it was possible to build a optimized CSS module (6) using the
`npm run optimize:css` command. This was done by using the clean-css (7)
package to optimize, clean and minify the CSS module and saving it as
`build/nord.css`. This also required to adjust the import path from
`node_modules/nord/src/nord.css` to `node_modules/nord/dist/nord.css`.

Since most users are building projects using a bundler like Webpack (8),
which takes care of optimizing the CSS module including the addition of
vendor prefixes, it is not necessary to provide such an optimized CSS
module. The result of the bundlers are generally more accurate,
up-to-date, matches the users preferred optimization rules and ensures
it fits the projects data processing flow.

Removing the optimized CSS module comes with the positive effects of
also removing more development dependencies.

>>> Lightweight And Simpler

Since all documentations will be served by Nord Docs there is no more
need for the `docs:dev` and `docs:build` npm commands and the logic
that behind them. This includes the deletion of the deprecated GitBooks
(dev)dependency and the whole `docs` directory with the actual Markdown
documentation source files.

There are also currently a lot of assets for Nord and all of its port
project included in the repository (9). Most of them have also been
moved to Nord Docs (or will be replaced by already existing ones) while
many have been deleted since they are not used and required anymore.

All these changes made Nord more lightweight with and cleaner structure
and simplified the build stack enormously.

>> Statistic Comparison

```raw
| Name                         | Value     | Level of concern          |
| ---------------------------- | --------- | ------------------------- |
| Overall repository size      |           |                           |
| * Commits                    |           |                           |
|   * Count                    |   173     |                           |
|   * Total size               |  67.4 KiB |                           |
| * Trees                      |           |                           |
|   * Count                    |   332     |                           |
|   * Total size               |   183 KiB |                           |
|   * Total tree entries       |  4.19 k   |                           |
| * Blobs                      |           |                           |
|   * Count                    |   387     |                           |
|   * Total size               |  58.7 MiB |                           |
| * Annotated tags             |           |                           |
|   * Count                    |     2     |                           |
| * References                 |           |                           |
|   * Count                    |    12     |                           |
|                              |           |                           |
| Biggest objects              |           |                           |
| * Commits                    |           |                           |
|   * Maximum size         [1] |  1.30 KiB |                           |
|   * Maximum parents      [2] |     2     |                           |
| * Trees                      |           |                           |
|   * Maximum entries      [3] |    96     |                           |
| * Blobs                      |           |                           |
|   * Maximum size         [4] |  3.48 MiB |                           |
|                              |           |                           |
| History structure            |           |                           |
| * Maximum history depth      |   154     |                           |
| * Maximum tag depth      [5] |     1     |                           |
|                              |           |                           |
| Biggest checkouts            |           |                           |
| * Number of directories  [6] |    18     |                           |
| * Maximum path depth     [6] |     4     |                           |
| * Maximum path length    [6] |    51 B   |                           |
| * Number of files        [7] |   141     |                           |
| * Total size of files    [7] |  49.9 MiB |                           |
| * Number of symlinks         |     0     |                           |
| * Number of submodules       |     0     |                           |
```

The report has been generated using GitHub's awesome git-sizer (11):
`git-sizer --verbose`

References:
  (1) nordtheme/web#1
  (2) https://twitter.com/arcticicestudio/status/1104494647383068673
  (3) https://github.com/arcticicestudio/nord-docs/releases/tag/v0.10.0
  (4) https://arcticicestudio.github.io/nord
  (5) https://pages.github.com
  (6) https://arcticicestudio.github.io/nord/development/building.html#optimized-css-module
  (7) https://www.npmjs.com/package/clean-css
  (8) https://webpack.js.org
  (9) https://github.com/arcticicestudio/nord/tree/develop/assets
  (10) https://github.com/github/git-sizer

GH-112
arcticicestudio added a commit that referenced this issue Mar 16, 2019
@arcticicestudio arcticicestudio removed their assignment Mar 16, 2019
@arcticicestudio arcticicestudio unpinned this issue Mar 25, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant