|
| 1 | + |
| 2 | +# Contribute to missing.css |
| 3 | + |
| 4 | + |
| 5 | +## Issues |
| 6 | + |
| 7 | +PRs are not the only form of contributing. Reporting issues is also important |
| 8 | +and helps a lot. And, like PRs, issues that don't match the project's goals or |
| 9 | +standards of quality will not be accepted. |
| 10 | + |
| 11 | +Don't be afraid! We take it upon ourselves to help people contribute. You might |
| 12 | +get follow-up questions or asked for more information when you submit an issue. |
| 13 | +It's not productive to close issues just because we don't like them. |
| 14 | + |
| 15 | +For feature requests, prefer [Discussions][] instead of Issues, unless the |
| 16 | +feature is directly in our [RFP][] or [Concepts][] pages. Otherwise, once a |
| 17 | +feature is agreed upon and there is interest in implementing it, issues can be |
| 18 | +created. |
| 19 | + |
| 20 | +missing.css is developed on a "free to use, pay to demand" basis. Contributors |
| 21 | +are not beholden to users and can work on whatever they like. If you need a |
| 22 | +specific feature or bugfix for your business, consider putting up a bounty. |
| 23 | +(Not recommended: Making an unsolicited donation and then demanding specific |
| 24 | +work. That's not how you buy something). |
| 25 | + |
| 26 | +[RFP]: https://missing.style/rfp/ |
| 27 | +[Concepts]: https://missing.style/concepts/ |
| 28 | +[Discussions]: https://github.com/bigskysoftware/missing/discussions |
| 29 | + |
| 30 | + |
| 31 | +## Development Environment |
| 32 | + |
| 33 | +The Missing project uses [mise-en-place] to install tools and run tasks. |
| 34 | + |
| 35 | + * Install your tools: |
| 36 | + ~~~ |
| 37 | + mise install |
| 38 | + ~~~ |
| 39 | +
|
| 40 | + * Start a development server: |
| 41 | + ~~~ sh |
| 42 | + mise run serve |
| 43 | + ~~~ |
| 44 | +
|
| 45 | + * Build all of missing.css (CSS and JS): |
| 46 | + ~~~ sh |
| 47 | + mise run build |
| 48 | + ~~~ |
| 49 | +
|
| 50 | + * Build just the CSS: |
| 51 | + ~~~ sh |
| 52 | + mise run build:css |
| 53 | + ~~~ |
| 54 | +
|
| 55 | + * Build just the JS: |
| 56 | + ~~~ sh |
| 57 | + mise run build:js |
| 58 | + ~~~ |
| 59 | +
|
| 60 | + * Build the website: |
| 61 | + ~~~ sh |
| 62 | + mise run build:www |
| 63 | + ~~~ |
| 64 | +
|
| 65 | +[mise-en-place]: https://mise.jdx.dev/ |
| 66 | +
|
| 67 | +
|
| 68 | +## Branching |
| 69 | +
|
| 70 | +We don't use the `master` or `main` branch. Instead, the `dev` branch |
| 71 | +is the default. This way, the default place to open a pull request is |
| 72 | +the right one. |
| 73 | +
|
| 74 | +The `prod` branch will contain the last published version of the code. |
| 75 | +Changes to the website and docs can also be made directly against the |
| 76 | +`prod` branch. |
| 77 | +
|
| 78 | +That's it! We don't expect to use feature branches that often, instead working |
| 79 | +directly on `dev` because CSS is hard to merge. |
| 80 | +
|
| 81 | +
|
| 82 | +## Publishing a release |
| 83 | +
|
| 84 | +To publish a new release: |
| 85 | +
|
| 86 | + * Make sure there is a changelog in `www/releases/`: |
| 87 | +
|
| 88 | + ~~~ sh |
| 89 | + cat >www/releases/4.2.0.md <<EOF |
| 90 | + --- |
| 91 | + release: 4.2.0 |
| 92 | + --- |
| 93 | +
|
| 94 | + # Changelog |
| 95 | +
|
| 96 | + - **Breaking:**{.color.warn} Removed everything |
| 97 | + EOF |
| 98 | + ~~~ |
| 99 | +
|
| 100 | + Some older changelogs have a list of `artifacts` -- this is a leftover |
| 101 | + from when we used our own distribution instead of npm. |
| 102 | +
|
| 103 | + * Create a git tag matching the regex `^v\d+\.\d+\.\d+` (i.e.: `v1.2.2`, |
| 104 | + `v1.3.3-special-build-1`, NOT `1.1.2`, `v3`, `v1.2-alpha`). It's important |
| 105 | + that the git tag has the correct format since we use the regex above in |
| 106 | + code. |
| 107 | +
|
| 108 | +
|
| 109 | +## Dev Notes |
| 110 | +
|
| 111 | +You can note your thoughts and leave notes for maintainers in the `JOURNAL.md` |
| 112 | +file. The structure is: |
| 113 | +
|
| 114 | + ~~~ |
| 115 | + ## YYYY-MM-DD |
| 116 | + |
| 117 | + Your notes here |
| 118 | + |
| 119 | + -- your-github-username |
| 120 | + ~~~ |
| 121 | +
|
| 122 | +Leave two empty lines between notes. |
| 123 | +
|
| 124 | +
|
| 125 | +## Project Structure |
| 126 | +
|
| 127 | + * `src/` -- the CSS source code. This is bundled with esbuild. |
| 128 | +
|
| 129 | + * `www/` -- the project website, built with [Lume] |
| 130 | + * `docs/` -- documentation. The prefixes on the names (e.g. `40-aria.md`) |
| 131 | + determine the order of pages. |
| 132 | + * `demos/` -- demo pages. These should have a `name` specified in the |
| 133 | + frontmatter. They will be listed in the demo page (`../demos.md`). |
| 134 | + * `releases/` -- release notes. |
| 135 | +
|
| 136 | + * `dist/` -- build results. This is also where the built website is. |
| 137 | + * `missing.css` -- unminified dev build |
| 138 | + * `missing.min.css` -- minified |
| 139 | + * `missing-prism.css` (& `.min.css`) -- [Prism] theme |
| 140 | +
|
| 141 | +[Lume]: https://lume.land |
| 142 | +[Prism]: https://prismjs.com |
0 commit comments