⭐️ Welcome to Proposals Jekyll! ⭐️
This is a template and actions to help you to collaboratively work on things. With proposals-jekyll:
This means that a proposal can move between draft and approved, and you can edit the environment of each of the associated workflows in .github/workflows to tweak these labels. Finally, if you decide that a draft should have some other state, you can add a label to the repository before merge to indicate that. As an example, let's say we have the following states:
You can add a label to a pull request that has the prefix status-
to indicate a different status, and instead of publishing the proposal as a draft we will
publish it as your label. This also means that the pull request can remain open until you have decided it is graduated (merged)
or requires a different state (update the label).
Closing or otherwise not continuing a pull request will not delete the last draft. We do this so that drafts stay accessible for someone else to pick up and work on if desired.
Read about #workflows, Working With Proposals, or How to setup a site next.
If you haven't created your site yet, see setup first.
To submit a proposal, you will open a pull request to the repository.
proposals/automated-container-builds.md
. Only lowercase letters, numbers, and -
are allowed in the name.Once you've prepared the markdown file, open a pull request to the repository. If you aren't a contributor, when the workflow is approved it will add the draft to the site as long as someone else isn't making changes to the same proposal. If this happens the automation will fail, and you should find the other pull request to work on collaboratively instead.
All proposals live in proposals on the main branch. When you want to edit an existing one, simply make changes and open another pull request. By way of having the same filename, the proposal on the site will be updated to return to a draft state. While you are working on the draft, the previous approved proposal (if applicable) will not be touched. The reason is because if you close the pull request we wouldn't want to alter or remove it.
To delete a proposal, simple open a pull request to delete the file from the main branch. For the sake of caution it won't be deleted on the PR, but when it is merged into main. You can also ask the maintainer to manually delete the file from the branch in the UI, which might be easier.
If your pull request created a draft, we delete the draft. We do not delete and previously approved version of the proposal.
By default, we are only allowed one draft in progress at once. If you open a pull request and the draft is being worked on somewhere else, the PR will fail. You should thus check before you open a PR that there isn't already a draft in progress!
To enable the proposals collaboration automation we have the following workflows:
They are described in more detail below.
When you open a pull request, given that it's approved by a maintainer (or you
are a contributor and don't need that) we run a workflow that finds new or changed files
in the proposals
directory of the main branch, and then adds them as drafts to the website.
This means on GitHub Pages (gh-pages branch typically) we add them to _proposals/drafts
and
there is a draft tag included.
Not all changes go through, and this is ok! If you open a pull request and no longer want to work on the draft, we will remove the draft from the github pages.
You can clone the repository right to where you want to host the docs:
git clone https://github.com/vsoch/proposal-jekyll
cd proposal-jekyll
Note that we store the main interface under docs here.
To edit configuration values, customize the _config.yml. This includes details like the site title and basename, and colors. You'll also want to look at the deploy-approved.yaml and deploy-draft.yaml if you want to customize the tags used for drafts and approved, respectfully.
You'll then want to trigger the dispatch event workflow that will take the docs folder and deploy on GitHub pages. We keep the two separate so proposals can go into main and via pull requests, and we can always update the pages site without merging anything.
Depending on how you installed jekyll, and this would be in docs or your cloned GitHub pages branch:
jekyll serve
# or
bundle exec jekyll serve
If you want to take the docs folder in the main branch and completely wipe your current template (start fresh) you can delete your gh-pages branch and then re-run the creation workflow. To update templates or similar, run the update workflow. Do both of these things with caution!