13 KiB
Releases and Workflows
Release Schedule
We're using Semantic Versioning, to indicate major, minor and patch versions. You can find the current version number in the readme, and check your apps version under the config menu. The version number is pulled from the package.json file.
Typically there is a new major release every 2 weeks, usually on Sunday, and you can view these under the Releases Page. Each release will create a new tag on GitHub, and each major release will also result in the creation of a new tag on DockerHub, so that you can fix your container to a certain version.
For a full breakdown of each change, you can view the Changelog. Each new feature or significant change needs to be submitted through a pull request, which makes it easy to review and track these changes, and roll back if needed.
Automated Workflows
Dashy makes heavy use of GitHub Actions to fully automate the checking, testing, building, deploying of the project, as well as administration tasks like management of issues, tags, releases and documentation. The following section outlines each workflow, along with a link the the action file, current status and short description. A lot of these automations were made possible using community actions contributed to GH marketplace by some amazing people.
Code Processing
Releases
Issue Management
PR Management
Documentation & Reports
Git Strategy
Git Flow
Like most Git repos, we are following the Github Flow standard.
- Create a branch (or fork if you don'd have write acces)
- Code some awesome stuff, then add and commit your changes
- Create a Pull Request, complete the checklist and ensure the build succeeds
- Follow up with any reviews on your code
- Merge 🎉
Git Branch Naming
The format of your branch name should be something similar to: [TYPE]/[TICKET]_[TITLE]
For example, FEATURE/420_Awesome-feature
or FIX/690_login-server-error
Commit Emojis
Using a single emoji at the start of each commit message, to indicate the type task, makes the commit ledger easier to understand, plus it looks cool.
- 🎨
:art:
- Improve structure / format of the code. - ⚡️
:zap:
- Improve performance. - 🔥
:fire:
- Remove code or files. - 🐛
:bug:
- Fix a bug. - 🚑️
:ambulance:
- Critical hotfix - ✨
:sparkles:
- Introduce new features. - 📝
:memo:
- Add or update documentation. - 🚀
:rocket:
- Deploy stuff. - 💄
:lipstick:
- Add or update the UI and style files. - 🎉
:tada:
- Begin a project. - ✅
:white_check_mark:
- Add, update, or pass tests. - 🔒️
:lock:
- Fix security issues. - 🔖
:bookmark:
- Make a Release or Version tag. - 🚨
:rotating_light:
- Fix compiler / linter warnings. - 🚧
:construction:
- Work in progress. - ⬆️
:arrow_up:
- Upgrade dependencies. - 👷
:construction_worker:
- Add or update CI build system. - ♻️
:recycle:
- Refactor code. - 🩹
:adhesive_bandage:
- Simple fix for a non-critical issue. - 🔧
:wrench:
- Add or update configuration files. - 🍱
:bento:
- Add or update assets. - 🗃️
:card_file_box:
- Perform database schema related changes. - ✏️
:pencil2:
- Fix typos. - 🌐
:globe_with_meridians:
- Internationalization and translations.
For a full list of options, see gitmoji.dev
PR Guidelines
Once you've made your changes, and pushed them to your fork or branch, you're ready to open a pull request!
For a pull request to be merged, it must:
- Must be backwards compatible
- The build, lint and tests (run by GH actions) must pass
- There must not be any merge conflicts
When you submit your PR, include the required info, by filling out the PR template. Including:
- A brief description of your changes
- The issue, ticket or discussion number (if applicable)
- For UI relate updates include a screenshot
- If any dependencies were added, explain why it was needed, state the cost associated, and confirm it does not introduce any security issues
- Finally, check the checkboxes, to confirm that the standards are met, and hit submit!