hrkfdn / ncspot

Cross-platform ncurses Spotify client written in Rust, inspired by ncmpc and the likes.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

General project improvements for users and contributors

ThomasFrans opened this issue · comments

Is your feature request related to a problem? Please describe.
I would like to propose some general improvements to the project. The improvements kind of depend on each other a bit. That's why I decided to group them under one issue, so they can all be discussed together.

Describe the solution you'd like
The first improvement would be to Keep a Changelog. I'm personally a big fan of good changelogs: ones that are 100% user facing, without jargon and not automated (example). To users it gives a clear overview of the important changes for them. For developers, it can be a nice way to keep track of the improvements to the project. It can function sort of like a diary in which all the significant changes are documented for future reference. It would be especially useful after a stable release, to document breaking changes.

As for the format of the changelog, I think the Keep a Changelog format is one of the better ones out there. It is clean, minimal and still allows anyone to quickly see all the code changes by clicking on the link in the title. It also neatly groups all related changes together under clear categories. A changelog which follows a specification is also easy to parse and use by other programs/services. One example of a service which uses these is Flathub, where the changelog is displayed under the program.

I know it can be a bit of a chore to maintain a changelog, but I would absolutely be willing to keep it updated. I'd rather do that than have it be automatically generated from the commits, as that includes a lot of noise and isn't user-facing at all. The specification also mentions it's not that important to update the changelog together with the changes, as long as it is updated before each release. It would of course be simpler to keep it updated together with each change, which leads me to the second improvement.

It could be nice to add contributor guidelines. Personally I kind of miss those, even though I've contributed before. It would be handy to get a general explanation on how to start (clone, make commit, make PR) for new contributors. It would also be handy to have commands which you can execute locally before making a PR to know your PR will pass CI. It would just be a section with the commands used in the .github/workflows/ci.yml file which contributors can enter locally if they want. Contributor guidelines could also include a section about updating the changelog with significant user-facing changes. That way the changelog would always be up to date and would stay in sync with the actual changes when commits are reverted. Otherwise it could be forgotten to revert the changelog when another commit it references is reverted.

Additional context
I'd be willing to make a first draft of all the changes. I just wanted to make a feature request first to discuss what would be wanted and what wouldn't be before I started working on it 🙂