Remove the announce.sh script from this repo so we only have one copy in
the releases repo that we need to maintain.
Story: #2001816
Change-Id: I486df8fa09050bd2e903922263c12192f4d21805
Depends-On: https://review.openstack.org/564329
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
If the announce script cannot set up the tools it needs it should not
continue.
Change-Id: If66a5f863976c5c2010ac7d5c2efdfed55ff58c1
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
In the event that we're releasing a non-Python project or the
project otherwise lacks a usable setup.py, first attempt to infer
the project name from the $ZUUL_PROJECT environment variable if set
before falling back on assuming the project name is the same as the
name of the current working directory. This is particularly
important when running under CI systems like Zuul, which will name
the current working directory after the job rather than after the
project itself.
Change-Id: I19b51846b581c5d033b08466ca09f23b23bd5e49
Periodically when we have an announcement failure someone has to run
announce.sh by hand. This change makes that a little nicer by waiting
until after the argument validation is done to "set -x" so that the
usage message for missing arguments is printed more cleanly.
Change-Id: I2081b28315fd2272399b10e98e7bd390f6bc970e
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
We're going to use the value of this option for more purposes, so change
the name to reflect that.
Change-Id: I10586095a2bc7c6654fcd309a5296fb006447eee
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
We don't announce alphas or betas, so short-circuit the script early
when we see either type of version number.
Change-Id: Iba630343d3041a341ad430996f50d9262da8a217
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
Some project names and tarball directories do not match. Add an option
to let the caller specify the proper name for the tarball location,
falling back to the name of the project when not given explicitly.
Change-Id: Icfc5ee2bc0538450a095c62d9ed34411ff2365bc
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
Move the logic for picking the destination for the message into the
Python code where it is easier to change so we can add a rule in a later
patchset.
Change-Id: I32c6da93055ff8968fa001e7cc73ffd25a0a369f
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
All announcements should go to the new release-announce list.
Except for release-test repository, which should go to our
debug list (release-job-failures) instead.
Depends-On: I97e7233a97e80ddf3d383556dd41c20b1c6ad056
Change-Id: I604288d266cbe53ee4d9b8567331f94c3c684088
Debugging announce job failures is harder because we can't see what
commands are being run.
Change-Id: I481fd2511748afa3bc0ec81d57145fa2643f3923
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
The XStatic projects can't use pbr because they need four digit
versions. They use setuptools-scm to collect their file list instead,
but that is not pre-installed on the nodes where the announce script
runs. Rather than deal with that explicitly, run a setuptools command to
cause all of the needed things to be installed in a way that will log
the output but not include it in the outgoing email body.
Change-Id: I8ce14b19dc13bad6260a3e32f14e06f5f5fc5df4
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
We want release announcements for final releases, after release
candidates, to include all of the changes from the release. In a perfect
world, the tag history of the releases would be such that we could ask
git for the previous release. Unfortunately, the tag for the final
release from the previous series is not on the same branch where we are
tagging the final of the new release. It used to be merged in, but at
the wrong point. Now it isn't even being merged in.
Rather than trying to deduce the right start point in the announce
script, this change makes it an optional piece of the tag metadata. When
present, the diff-start value is used. When not present, the old
behavior of using the previous tag is retained.
Given our practice of creating new stable branches on the first release
candidate tag, we can also update propose-final-releases to
automatically set the diff-start value for new final releases to point
to the first release candidate of the last release series. If that
automatic value is wrong, it can be adjusted manually before the final
tags are applied.
See related work in I4dff3a57f4d0c8f625e789ec19683c47983b7877
Depends-On: I4dff3a57f4d0c8f625e789ec19683c47983b7877
Depends-On: If56bf1471659f8a27edbed840a880ac998e6759a
Change-Id: I79c3ff7cc07300af5336a0e9f232f8802d4b4c4a
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
Exit announce.sh with the status code of the send-mail command, so that
if it fails the job is marked as failed instead of successful.
Change-Id: I93b4bbd6d076cb7055089356e761f98aa853c9d7
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
Rather than exit with an error when the metadata is not present, report
a warning and exit with a passing status code. That way the CI job won't
fail.
Change-Id: If87b49fda044a54326a8bca600226ad838106027
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
Only report releases as part of the "stable" series if they are not
pre-releases and they are not the first release in a series.
Tag releases as either "release" for full releases, or "development
milestone" or "release candidate" for pre-releases.
Change-Id: I493b8390170ecd52b9033e0f33329d840e1f087d
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
We don't have realpath installed on all of the CI servers and it's
easier to not use it than wait for new images.
Change-Id: I2814c9951e92cf88967bee916b0ffc3d75905696
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
Explicitly mention that it is the first release and do not show the
requirements changes or diffstats.
Change-Id: I524e36d94fa7aaa42ae1550e624c0991cc870dda
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
Sometimes we pass "." as the path, and that confuses the python code
trying to build the release notes, so expand the path.
Change-Id: I4a3a62c894f3c450fe8e62ed9b513d00f8536b7a
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
When we run in the gate, the workspace directory is named something like
python-keystoneclient-announce-release rather than
python-keystoneclient. Use the git URL to find the correct short name of
the repository.
Change-Id: Ica3408e6c5fe5f55436b27a69ff13cb0d40f68c6
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
When tagging a release, look for a flag telling us whether to include
the PyPI link in release announcements and save the information to the
tag message.
When announcing a release, look for the flag and only include the PyPI
link when it is set to yes.
Change-Id: I8e0a2517d2a8c19381d2d57600da92c954775e5e
Depends-On: I491fb9e6edd57a3ec1c0b85c8dd9e22d5f09e6b2
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
Ignore errors from git describe when there is only one tag on the
repository, as will happen when releasing the first version.
Change-Id: Idf59b08e9d4c3a153abc3fd14002edb37b2664cb
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
Add a small Python command to actually send the email announcements. The
command assumes a mail server on localhost, which is the configuration
we expect to have on the CI nodes where the emails will be generated.
Change-Id: I586278b88b10bd0477a8c15a22b347e2ccdb1119
Pull send-announcements-to out of the deliverable file and put it into
the commit message for the new tag. Then when generating the
announcement, look for the metadata value and use it if found.
Change-Id: I8fac9f33973df07f6d716fab09fe51381f07b504
Depends-On: I41f3f4874464b37ff95ec1e41a0b6993b62dcf1d
announce.sh supposes the EMAIL environment variable is set
(since it calls release-notes without setting it.
Exit early with an error message if it's not set.
Change-Id: Ic9f00478dfeca69c4ecbe5fc126105c445c34c4e
If run against a tag missing the meta lines, announce.sh silently
fails. This makes it slightly more verbose.
Change-Id: Id60b5c1b50c0eff1dc802219b2fb4f7ed444d165
This new script generates a release note email in a file in ./relnotes/
by looking at information in the tag message and the history of the
project.
Change-Id: I791c4cd84c13407a867634e9ee1934466db75af2