Skip to content

Cherry-pick lint, MinIO CI fix and NOTICE cleanup to REL_2_STABLE - #119

Open
tuhaihe wants to merge 3 commits into
apache:REL_2_STABLEfrom
tuhaihe:rel2-cherry-pick-0921
Open

tuhaihe wants to merge 3 commits into
apache:REL_2_STABLEfrom
tuhaihe:rel2-cherry-pick-0921

Conversation

@tuhaihe

@tuhaihe tuhaihe commented Sep 21, 2026

Copy link
Copy Markdown
Member

Cherry-pick the three commits that have landed on main since REL_2_STABLE
was last synced (which is also where 2.2.0-incubating-rc1 is tagged).

All three apply without conflicts.

The NOTICE change is the reason this matters for the release: Justin Mclean
raised the NOTICE content during the 2.2.0-rc1 IPMC vote, and rc1 is tagged at
the current REL_2_STABLE head, so without this the same issue ships in rc2.

The MinIO fix is also time-sensitive. dl.min.io now returns HTTP 410 for
every artifact, so the s3_plugin_e2e job breaks on its first curl the next
time it runs on this branch.

One commit on main is deliberately not included: deeb0946
("CI: pin Cloudberry branch to REL_2_STABLE"). CLOUDBERRY_REF is already
REL_2_STABLE here, so the commit reduces to a TODO: switch back to main once Cloudberry 3.x stabilizes with PG16 comment, which is a main-branch concern
and does not belong on a 2.x release branch.

After this, REL_2_STABLE and main differ only in the two intentional CI
divergences: the workflow trigger list includes REL_2_STABLE, and the
main-only TODO comment above is absent.

Verified locally on top of REL_2_STABLE:

  • go build ./... and go vet ./... clean
  • unit tests pass for backup, restore, utils, history, options, filepath,
    s3plugin and the gpbackman packages

woblerr and others added 3 commits September 21, 2026 17:54
* Resolve production lint findings.

Mark existing best-effort cleanup and transaction errors as intentionally ignored without changing their execution order or error-handling policy.

Remove unused parameters and return values, ineffective assignments, redundant conversions, and an unreachable duplicate branch. Correct misspelled source comments.

* Resolve test lint findings.

Remove assignments whose values are overwritten before use. Assert errors from test file writes, and correct misspelled descriptions and variable names.

* Enable additional golangci-lint checks.

Enable ineffassign, misspell, nakedret, SA staticcheck checks except SA1019, and unconvert with read-only module resolution.

Run golangci-lint 2.12.2 through the official GitHub Action. Keep make lint limited to invoking the installed binary and document the workflow.

* Install the pinned golangci-lint version with Go.

Restore make lint bootstrapping without executing a downloaded installation script.
MinIO archived the open-source Server and Client (mc) and stopped serving
their binaries: every artifact under dl.min.io now returns HTTP 410 Gone.
The s3_plugin_e2e test case downloads both, so it fails on the first curl.

CI has not run since 2026-09-09, before the shutdown, so this has not gone
red yet -- it breaks on the next run of that test case.

Pin the final open-source releases from their GitHub release assets, which
are still published, and verify each binary against the sha256sum MinIO
publishes next to it. The previous code chmod +x'd an unverified download.

Server RELEASE.2025-09-07T16-13-09Z, client RELEASE.2025-08-13T08-35-41Z.
Both keep the minio/mc file names and the default minioadmin credentials,
so the server startup, health probe and bucket setup are unchanged.

The release/checksum values are plain shell variables rather than exported
env: anything with a MINIO_ prefix would be read as configuration by the
MinIO server started a few lines below.
Justin Mclean noted during the 2.2.0-rc1 IPMC vote that this NOTICE
carries the full Apache-2.0 boilerplate, and that NOTICE is reserved for
notifications that are legally required.

The text came from upstream: github.com/greenplum-db/gpbackup-archive ships a NOTICE whose
body is the VMware attribution followed by the Apache-2.0 grant
boilerplate, and the whole file was copied in when the code was donated.

Copying all of it is more than section 4(d) of the Apache License asks
for.  It requires "the attribution notices contained within such NOTICE
file", not the file itself, and infra.apache.org/licensing-howto.html is
explicit that a bundled dependency's NOTICE "must be analyzed and the
relevant portions bubbled up", and that one should "keep NOTICE as brief
and simple as possible" and "not add anything to NOTICE which is not
legally required".

So keep the part that is an attribution notice:

    This product includes software originally developed by VMware.

    Greenplum Database Backup
    Copyright 2017-Present VMware, Inc. or its affiliates. All Rights Reserved.

and drop the license grant, which is not one.  The Apache-2.0 terms
continue to reach users through LICENSE and the source file headers,
which is where they belong.

Assisted-by: Claude Code
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants