Depending on the branch protection settings, we might have to update
them before they can be merged, so do this automatically to minimize the
required manual work.
with GitHub workflow files.
We run these steps for a new minor version - feature freeze :
- create the Bump-version PR on `main`,
- create the new minor-version-branch , e.g. `2.18.x`
- create the Release PR on minor-version-branch
We no more use a fork, but a branch directly.
To detect the problematic patterns that were part of the 2.18 release
we can check the sql scripts against a list of allowed statements.
Any non idempotent operation should be in the pre_install scripts
and not the scripts that get appended for the update scripts.
This allows switching backport branch without requiring a published
release for the version. This patch also bumps version to 2.19.0-dev
so 2.18.x becomes the new backport target.
This adds a generated column for extracting the version from the job
name. It will read anything that matches `PG<number><alphanumeric>` or
`PG<number>.<number>` and generate a version string. If the first
pattern matches, it will generate `<number>.x` as string, signifying
that this is an unknown minor version.
This way it's easier to delete the entire .unreleased folder after the
changelog is generated, instead of enumerating every single changelog
file but skipping the templates.
Currently if a PR that is elegible for backporting touches a workflow
file then the automatic backport fails.
Now adding the label `force-auto-backport-workflow` to a PR that touches
workflow files will proceed with the automatic backporting. This is
useful because sometimes we need to fix a workflow and backport it to
the current release branch or when we're adding support to a new
Postgres major version that requires workflow changes and it should be
backported to the release branch in case of creating patch releases.
This commit enables PG17 in the following workflows:
* Regression Linux (including 32bit)
* Memory tests
* Sanitizer tests
* Coverity
* SQLSmith
Also bumped to minor versions:
* 16.4
* 15.8
* 14.13
And another minor python packages fixes.
To not introduce shared object dependencies on functions in extension
update scripts we use this stub function as placeholder whenever we
need to reference c functions in the update scripts.
When creating a CAgg using a column on the projection that is not part
of the `GROUP BY` clause but is functionally dependent of the primary
key of the referenced table is leading to a problem in dump/restore
because the wrong dependencies created changing the order and way dump
is generated.
Fixed it by copying the `Query` data structure of the `direct view` and
changing the necessary properties instead of creating it from scratch.
Having c function references in the versioned part of the sql
scripts introduces linking requirements to the update script
potentially preventing version updates. To prevent this we can
have a dummy function in latest-dev.sql since it will get over-
written as the final step of the extension update.
We have to be careful with the column types we use in our catalog to only allow types
that are safe to use in catalog tables and not cause problems during extension upgrade,
pg_upgrade or dump/restore.
It's long we need to have binary upgrade tests in our CI. One example
is #6935 (and others) that can be prevented if we have such kind of
test in our CI.
To implement the `pg_upgrade` test we used the python Testing Framework
for PostgreSQL (https://github.com/postgrespro/testgres).
Unfortunately the testing framework don't have the ability to retain the
pg_upgrade log files after a successful execution, then we created a PR
to make it possible and we'll use this patched version until we get the
code merged and released on upstream.
https://github.com/postgrespro/testgres/pull/125Closes#3868#4428
This PR introduce the release notes header template using Jinja [1].
Also improved the script to merge changelogs to include the upcoming
.unreleased/RELEASE_NOTES_HEADER.md.j2 where we'll actually write the
release notes header for the next release.
Currently the update test is quite inconvenient to run locally and also
inconvenient to debug as the different update tests all run in their own
docker container. This patch refactors the update test to no longer
require docker and make it easier to debug as it will run in the
local environment as determined by pg_config.
This patch also consolidates update/downgrade and repair test since
they do very similar things and adds support for coredump stacktraces to
the github action and removes some dead code from the update tests.
Additionally the versions to be used in the update test are now
determined from existing git tags so the post release patch no longer
needs to add newly released versions.
Adjust DecompressChunk path generation to use the per chunk settings
and not the hypertable settings when building compression info.
This patch also fixes the missing chunk configuration generation
in the update script which was masked by this bug.
SQLSmith finds many internal program errors (`elog`, code `XX000`).
Normally these errors shouldn't be triggered by user actions and
indicate a bug in the program (like `variable not found in subplan
targetlist`). We don't have a capacity to fix all of them currently,
especially since some of them seem to be the upstream ones. This commit
adds logging for these errors so that we at least can study the current
situation.
Fix missing alignment handling, and also buffer size problems. We were
not properly reporting the failures in the compression_algo tests, so
didn't notice these problems. Add part of tests from "vector text
predicates" PR to improve coverage.
Since #6505, the changelog script tries to access the
secrets.ORG_AUTOMATION_TOKEN. However, accessing secrets is not possible
for PRs. This PR changes the token to the default access token, which
is available in PRs and provides read access to the issue API.