Add a new checklist item reminding contributors to run `make
api-update` to track new APIs. Add two short paragraphs that
cover some of the common things I copy and paste or need to look up
when working with contributors' PRs.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
This is a manual workflow, you must trigger it from the github ui,
but most everything after that is automated.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
Turns out the dependabot tool can also indicate what github actions we
are using can be updated. This can be handy in avoiding the warnings
that github throws up all over an action that relies on a deprecated
feature. Use a monthly update just like go modules to avoid being
pestered all the time.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
Right now this workflow needs to be run manually and it will generate
some files that are archived. The plan is to build upon this as a base
eventually teaching the workflow how to automatically file an issue
reporting on what API updates are needed after each release.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
When archiving, use the latest version of the archive action and use
it's ability to archive an entire directory.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
Lower the frequency of updates. The monthly update is documented to
occur on the first of the month, which works better with our
every-other-month release cadence.
Automatically apply the "no-API" label. Do not add a rebase label, which
has not relevance to the go-ceph workflow.
Use the prefix "go-ceph:" which is what we normally use for changes only
to the go.mode, etc.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
We will (most probably) remove non-ptrguard code before the next
release. Let's skip the tests already now, because they double the
likelihood of failing flaky tests.
Signed-off-by: Sven Anderson <sven@redhat.com>
Dependabot can automatically create PRs for packages that have have a
new release. By depending on recent versions of the consumed packages,
the result of the OpenSSF scorecard will improve.
See-also: https://deps.dev/go/github.com%2Fceph%2Fgo-ceph/
Signed-off-by: Niels de Vos <ndevos@redhat.com>
Mergify has not been working for weeks as they removed support for the
deprecated style we were relying on. This is my first attempt to
update it to the new style.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
It's too easy to forget to triage a PR with the API label, and then
if the PR looks good and is approved the mergify system will merge
it. Move to using an explicit "no-API" label for marking the PR as truly
not having API changes and not requiring a 2nd review.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
The new make targets allow us to share (mirror-enabled) ceph container
instances. Use this to test both non-ptrguard and prtguard test runs
while dropping the (now redundant) non-mirror-enabled ceph + tests
container run.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
This implements the policy first outlined in
https://github.com/ceph/go-ceph/discussions/549
In short: if a PR includes API changes (has the API label) then
either 2 reviews are required or 1 review plus 10 days must pass;
if a PR includes no API changes, then only 1 review is needed.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
Tests are running against Ceph Pacific and passing, so this can be
marked as a required CI status.
dpulls handles dependencies between PRs, once the status is marked with
success, the requirements have all been merged. Prevent merging when
dpulls is in a failed state.
Signed-off-by: Niels de Vos <ndevos@redhat.com>
In order to run CI jobs also on PRs that are based on other PRs, this
change adds the pattern 'pr/**' to the tested base branches. That
means, if PRs are pushed that are based on branches that start with
pr/... these PRs are also get tested. So, if we - by convention - push
PRs to branches like for example pr/ansiwen/myfix42, then all PRs
that are not based on master but another PR get tested as well.
Signed-off-by: Sven Anderson <sven@redhat.com>
The "extended-review" label indicates that review is likely to take
an extended period of time and for bots to not automatically take
a PR.
This avoid the need to preemptively mark a PR as changes needed or
give a false impression with a "do-not-merge" tag, which has a subtle
lack-of-quality implication.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
We had been using setup-go@v2-beta for a while, before v2 was out.
Now v2-beta is out of data and generating warnings in the github
actions ui.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
Enabling Smart-mode for "Strict Merge" causes Mergify to do a rebase of
the PR before merging. The rebase will trigger CI runs again, and
merging will be done only when the CI results are successful.
See-also: https://docs.mergify.io/actions.html#merge
Signed-off-by: Niels de Vos <ndevos@redhat.com>
Unfortunately it is not recommended to use a regular expression to check
for the CI status of multiple tests. In case some tests do not run and
fail to report the status, Mergify will not know something is wrong and
PRs might get merged.
The only way to make sure all status checks have passed successfully, is
to list them all separately.
See-also: https://docs.mergify.io/conditions.html#validating-all-status-check
Signed-off-by: Niels de Vos <ndevos@redhat.com>
Recently, changes to ceph nautilus reminded me that due to the low rate of PRs we don't always catch things that change in our dependencies right away. I propose adding a daily CI run that help catch these kind of things sooner and can help distinguish between a PR related failure and random flakiness and upstream changes.
These rules for Mergify do the following:
1. dismiss review +1's when a PR is updated
but keep any -1 reviews, so the reviewer needs to confirm the update
addresses the comment(s)
2. merge the PR when there are 2 (or more) positive reviews, and no
negative ones
don't merge when the 'do-not-merge' label is added to the PR
also require that the status checks (CI) has passed
3. in case there are merge conflicts, Mergify will leave a message
asking for a rebase
Documentation: https://docs.mergify.io/configuration.html
Signed-off-by: Niels de Vos <ndevos@redhat.com>
Only octopus containers will have castxml available for now.
Conditionally grab the files generated by 'implements' and
make it available for later examination.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
This should basically run similarly to the travis ci configuration
but use the native github ci infrastructure.
In order to avoid messing around with various env vars I had to use the
v2-beta version of the go setup library. Once v2 has been released
we can switch away from the beta.
Signed-off-by: John Mulligan <jmulligan@redhat.com>