-
Notifications
You must be signed in to change notification settings - Fork 25
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
[Suggestion] Further Repository Utilities #147
Comments
Thanks for the suggestions @kevinmatthes
|
Thank you for your feedback! Here are some additional information. Point 5:A crate's root can be documented using Rust's Markdown documentation comments. Anything you can render in the README dynamically will render in the crate root's documentation, as well, i.e. images and badges. When you edit the documentation of the code anyway, you will be more likely to edit the crate root's documentation than the README -- they might become out of sync although they are supposed to contain mostly the same information. You now set up a workflow which watches the crate root's source file on the default branch for changes; if the file was edited, the workflow will extract the documentation text, paste it in the README and submit a PR with the changes. The PR could also be empty. If you agree with the changes made by the workflow, you can merge it and thereby update the README. The setup effort consists of putting the README text prefixed with The interaction effort restricts to either merge or close the raised PR. Point 6:On PR, a user manually triggers a workflow on their branch (i.e., clicking a button in the Actions tab). The workflow will harvest the commit messages using a certain pattern (can be configured almost completely freely) and push a change report known as "fragment" to the branch it is called on. The fragment is stored in a central directory where all other fragments of the next version are saved, as well. On release, the maintainer manually triggers a workflow which will assemble all saved fragments and paste their sorted contents into the CHANGELOG file. The processed fragments will be deleted as they now have fulfilled their purpose. These changes are submitted as a PR. You can review them, check for correctness etc., and finally merge the PR to update your CHANGELOG. The setup effort consists of two workflow files (fragment creation and collection), the CHANGELOG basic setup, and a configuration file which dictates how the CHANGELOG has to look. Setting up all of these things is routine for me. The interaction effort consists of invoking the collection workflow, i.e., clicking a button in the Actions tab, as well as merging the submitted PR. You can even make it run without submitting a PR and pushing directly to the default branch but I highly recommend reviewing automated changes before applying them. Both utilities are based on the same Rust binary which needs to be installed from the package registry. Compiling it from scratch takes about three minutes, so I recommend a cache. You can also install that binary on your local machine and run the steps there, this will save you from having to wait for the CI to finish every time. |
@tobealive
I would like to suggest to configure the following utilities for this repository:
Which of these points sound interesting for you?
The text was updated successfully, but these errors were encountered: