Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[release/2.8] deprecate reference package, migrate to github.com/distribution/reference #4063

Merged

Conversation

thaJeztah
Copy link
Member

This integrates the new module, which was extracted from this repository at commit b9b1940;

# install filter-repo (https://github.com/newren/git-filter-repo/blob/main/INSTALL.md)
brew install git-filter-repo

# create a temporary clone of docker
cd ~/Projects
git clone https://github.com/distribution/distribution.git reference
cd reference

# commit taken from
git rev-parse --verify HEAD
b9b19409cf458dcb9e1253ff44ba75bd0620faa6

# remove all code, except for general files, 'reference/', and rename to /
git filter-repo \
  --path .github/workflows/codeql-analysis.yml \
  --path .github/workflows/fossa.yml \
  --path .golangci.yml \
  --path distribution-logo.svg \
  --path CODE-OF-CONDUCT.md \
  --path CONTRIBUTING.md \
  --path GOVERNANCE.md \
  --path README.md \
  --path LICENSE \
  --path MAINTAINERS \
  --path-glob 'reference/*.*' \
  --path-rename reference/:

# initialize go.mod
go mod init github.com/distribution/reference
go mod tidy -go=1.20

This commit is based on 152af63 in the main branch, but adjusted for the 2.8 branch, with some differences:

@thaJeztah thaJeztah added the 2.x label Sep 22, 2023
Comment on lines +75 to +79
// ParseAnyReferenceWithSet parses a reference string as a possible short
// identifier to be matched in a digest set, a full digest, or familiar name.
//
// Deprecated: support for short-identifiers is deprecated, and will be removed in v3.
func ParseAnyReferenceWithSet(ref string, ds *digestset.Set) (Reference, error) {
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was a bit unfortunate that it was still in the 2.8 branch, but I thought it was a good opportunity to add the Deprecated message here (although there don't appear to be any external consumers; see #3774)

// FamiliarName returns the familiar name string
// for the given named, familiarizing if needed.
//
// Deprecated: use [reference.FamiliarName].
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All functions / types were marked as deprecated, but continue to be functional, so consumers can decide to continue using them, but the deprecation message should hopefully make them start preparing to move over to the new package (before switching to distribution v3 once a release for that that arrives)

@thaJeztah
Copy link
Member Author

thaJeztah commented Sep 22, 2023

One small fix needed, looks like;

level=warning msg="[runner] Can't run linter goanalysis_metalinter: buildir: failed to load package : could not load export data: no export data for \"github.com/distribution/distribution/digestset\""
level=error msg="Running error: 1 error occurred:
* can't run linter goanalysis_metalinter: buildir: failed to load package : could not load export data: 
* no export data for \"github.com/distribution/distribution/digestset\"\n\n"

…ence

This integrates the new module, which was extracted from this repository
at commit b9b1940;

    # install filter-repo (https://github.com/newren/git-filter-repo/blob/main/INSTALL.md)
    brew install git-filter-repo

    # create a temporary clone of docker
    cd ~/Projects
    git clone https://github.com/distribution/distribution.git reference
    cd reference

    # commit taken from
    git rev-parse --verify HEAD
    b9b1940

    # remove all code, except for general files, 'reference/', and rename to /
    git filter-repo \
      --path .github/workflows/codeql-analysis.yml \
      --path .github/workflows/fossa.yml \
      --path .golangci.yml \
      --path distribution-logo.svg \
      --path CODE-OF-CONDUCT.md \
      --path CONTRIBUTING.md \
      --path GOVERNANCE.md \
      --path README.md \
      --path LICENSE \
      --path MAINTAINERS \
      --path-glob 'reference/*.*' \
      --path-rename reference/:

    # initialize go.mod
    go mod init github.com/distribution/reference
    go mod tidy -go=1.20

This commit is based on 152af63 in the main branch,
but adjusted for the 2.8 branch, with some differences:

- the Sort functions have not been kept, as they were not part of the v2 package,
  and introduced in 1052518
- the ParseAnyReferenceWithSet and ShortIdentifierRegexp were kept (but deprecated)
  as removing happened in 6d4f62d, which is not
  in the 2.8 branch.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
@thaJeztah
Copy link
Member Author

All green now; issue was because the version of go-digest in this branch was a pre-v1.0.0 release, which didn't yet have the digestset package. I opened a follow-up to consider as well;

Copy link
Member

@milosgajdos milosgajdos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Noice!

Copy link
Collaborator

@davidspek davidspek left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@milosgajdos milosgajdos merged commit 11eb419 into distribution:release/2.8 Sep 22, 2023
3 checks passed
@thaJeztah thaJeztah deleted the 2.8_backport_switch_reference branch September 22, 2023 13:22
nrdufour added a commit to nrdufour/home-ops that referenced this pull request Oct 3, 2023
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [registry](https://github.com/distribution/distribution) | patch | `2.8.2` -> `2.8.3` |

---

### ⚠ Dependency Lookup Warnings ⚠

Warnings were logged while processing this repo. Please check the logs for more information.

---

### Release Notes

<details>
<summary>distribution/distribution (registry)</summary>

### [`v2.8.3`](https://github.com/distribution/distribution/releases/tag/v2.8.3)

[Compare Source](distribution/distribution@v2.8.2...v2.8.3)

##### What's Changed

-   Pass `BUILDTAGS` argument to `go build` by [@&#8203;marcusirgens](https://github.com/marcusirgens) in distribution/distribution#3926
-   Enable Go build tags by [@&#8203;thaJeztah](https://github.com/thaJeztah) in distribution/distribution#4009
-   `reference`: replace deprecated function `SplitHostname` by [@&#8203;thaJeztah](https://github.com/thaJeztah) in distribution/distribution#4032
-   Dont parse errors as JSON unless Content-Type is set to JSON by [@&#8203;thaJeztah](https://github.com/thaJeztah) in distribution/distribution#4054
-   update to go 1.20.8 by [@&#8203;thaJeztah](https://github.com/thaJeztah) in distribution/distribution#4056
-   Set `Content-Type` header in registry client `ReadFrom` by [@&#8203;thaJeztah](https://github.com/thaJeztah) in distribution/distribution#4053
-   deprecate reference package, migrate to github.com/distribution/reference by [@&#8203;thaJeztah](https://github.com/thaJeztah) in distribution/distribution#4063
-   `digestset`: deprecate package in favor of `go-digest/digestset`  by [@&#8203;thaJeztah](https://github.com/thaJeztah) in distribution/distribution#4064
-   Do not close HTTP request body in HTTP handler by [@&#8203;milosgajdos](https://github.com/milosgajdos) in distribution/distribution#4068
-   Add v2.8.3 release notes by [@&#8203;milosgajdos](https://github.com/milosgajdos) in distribution/distribution#4088

##### New Contributors

-   [@&#8203;marcusirgens](https://github.com/marcusirgens) made their first contribution in distribution/distribution#3926

**Full Changelog**: distribution/distribution@v2.8.2...v2.8.3

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zLjIiLCJ1cGRhdGVkSW5WZXIiOiIzNy4zLjIiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Reviewed-on: https://git.home/nrdufour/home-ops/pulls/127
Co-authored-by: Renovate <renovate@ptinem.io>
Co-committed-by: Renovate <renovate@ptinem.io>
Mengkzhaoyun pushed a commit to open-beagle/distribution that referenced this pull request Dec 14, 2023
registry 2.8.3

Welcome to the v2.8.3 release of registry!

Welcome to the 2.8.3 release of registry!

The 2.8.3 registry release fixes a few bugs and makes a few dependency updates.
The Go runtime has been bumped to 1.20.8.

See the changelog below for full list of changes.

* Do not close HTTP request body in HTTP handler ([distribution#4068](distribution#4068))
* Set Content-Type header in registry client ReadFrom ([distribution#4053](distribution#4053))
* Do not parse errors as JSON unless Content-Type is set to JSON ([distribution#4054](distribution#4054))
* Enable Go build tags ([distribution#4009](distribution#4009))

* replace deprecated function SplitHostname ([distribution#4032](distribution#4032))

* update to go1.20.8 ([distribution#4056](distribution#4056))

* deprecate digestset package in favor of go-digest/digestset  ([distribution#4064](distribution#4064))
* deprecate reference package, migrate to github.com/distribution/reference ([distribution#4063](distribution#4063))

Previous release can be found at [v2.8.2](https://github.com/distribution/distribution/releases/tag/v2.8.2)

Please try out the release binaries and report any issues at
https://github.com/distribution/distribution/issues.

* Milos Gajdos
* Sebastiaan van Stijn
* Milos Gajdos
* James Hewitt
* Ben Manuel
* Marcus Pettersen Irgens
* zounengren
<details><summary>30 commits</summary>
<p>

* Add v2.8.3 release notes ([distribution#4088](distribution#4088))
  * [`a4fa6992`](distribution@a4fa699) Add v2.8.3 release notes
* [release/2.8] Do not close HTTP request body in HTTP handler ([distribution#4068](distribution#4068))
  * [`5e6b1b5c`](distribution@5e6b1b5) Do not close HTTP request body in HTTP handler
* [release/2.8] digestset: deprecate package in favor of go-digest/digestset  ([distribution#4064](distribution#4064))
  * [`29b00e8b`](distribution@29b00e8) digestset: deprecate package in favor of go-digest/digestset
  * [`d1ab2430`](distribution@d1ab243) [release/2.8] vendor: github.com/opencontainers/go-digest v1.0.0
* [release/2.8] deprecate reference package, migrate to github.com/distribution/reference ([distribution#4063](distribution#4063))
  * [`3dda0677`](distribution@3dda067) deprecate reference package, migrate to github.com/distribution/reference
* [release/2.8 backport] Set Content-Type header in registry client ReadFrom ([distribution#4053](distribution#4053))
  * [`cb121c3f`](distribution@cb121c3) Set Content-Type header in registry client ReadFrom
* [release/2.8] update to go1.20.8 ([distribution#4056](distribution#4056))
  * [`3c6f7788`](distribution@3c6f778) update to go1.20.8
  * [`31f5cd48`](distribution@31f5cd4) Handle rand deprecations in go 1.20
  * [`29b8ba0b`](distribution@29b8ba0) Update to go 1.20
  * [`3316b198`](distribution@3316b19) Update to golang 1.19.10
  * [`444d053e`](distribution@444d053) update golangci-lint to v1.52
  * [`b800af44`](distribution@b800af4) ignore SA1019: ac.(*accessController).rootCerts.Subjects has been deprecated
  * [`0a98a00d`](distribution@0a98a00) Ignore SA1019: SplitHostname is deprecated.
* [release/2.8 backport] Dont parse errors as JSON unless Content-Type is set to JSON ([distribution#4054](distribution#4054))
  * [`2ec0471b`](distribution@2ec0471) Dont parse errors as JSON unless Content-Type is set to JSON
* [release/2.8 backport] reference: replace deprecated function SplitHostname ([distribution#4032](distribution#4032))
  * [`b57133cc`](distribution@b57133c) referene: fix formatting of "deprecated" comment.
  * [`2c4bf1a6`](distribution@2c4bf1a) replace deprecated function
* [release/2.8 backport] Enable Go build tags ([distribution#4009](distribution#4009))
  * [`110cb753`](distribution@110cb75) Enable build tags in 2.8
  * [`2d62a402`](distribution@2d62a40) s3: add interface assertion
  * [`2548973b`](distribution@2548973) Enable Go build tags
* Pass `BUILDTAGS` argument to `go build` ([distribution#3926](distribution#3926))
  * [`ab7178cc`](distribution@ab7178c) Pass BUILDTAGS argument to go build
</p>
</details>

* **github.com/distribution/reference**    49c28499d219 **_new_**
* **github.com/opencontainers/go-digest**  a6d0ee40d420 -> ea51bea511f7

Previous release can be found at [v2.8.2](https://github.com/distribution/distribution/releases/tag/v2.8.2)
quotengrote pushed a commit to quotengrote/ansible that referenced this pull request Jan 26, 2024
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [registry](https://github.com/distribution/distribution) | patch | `2.8.2` -> `2.8.3` |

---

> ⚠ **Warning**
>
> Some dependencies could not be looked up. Check the Dependency Dashboard for more information.

---

### Release Notes

<details>
<summary>distribution/distribution (registry)</summary>

### [`v2.8.3`](https://github.com/distribution/distribution/releases/tag/v2.8.3)

[Compare Source](distribution/distribution@v2.8.2...v2.8.3)

#### What's Changed

-   Pass `BUILDTAGS` argument to `go build` by [@&#8203;marcusirgens](https://github.com/marcusirgens) in distribution/distribution#3926
-   Enable Go build tags by [@&#8203;thaJeztah](https://github.com/thaJeztah) in distribution/distribution#4009
-   `reference`: replace deprecated function `SplitHostname` by [@&#8203;thaJeztah](https://github.com/thaJeztah) in distribution/distribution#4032
-   Dont parse errors as JSON unless Content-Type is set to JSON by [@&#8203;thaJeztah](https://github.com/thaJeztah) in distribution/distribution#4054
-   update to go 1.20.8 by [@&#8203;thaJeztah](https://github.com/thaJeztah) in distribution/distribution#4056
-   Set `Content-Type` header in registry client `ReadFrom` by [@&#8203;thaJeztah](https://github.com/thaJeztah) in distribution/distribution#4053
-   deprecate reference package, migrate to github.com/distribution/reference by [@&#8203;thaJeztah](https://github.com/thaJeztah) in distribution/distribution#4063
-   `digestset`: deprecate package in favor of `go-digest/digestset`  by [@&#8203;thaJeztah](https://github.com/thaJeztah) in distribution/distribution#4064
-   Do not close HTTP request body in HTTP handler by [@&#8203;milosgajdos](https://github.com/milosgajdos) in distribution/distribution#4068
-   Add v2.8.3 release notes by [@&#8203;milosgajdos](https://github.com/milosgajdos) in distribution/distribution#4088

#### New Contributors

-   [@&#8203;marcusirgens](https://github.com/marcusirgens) made their first contribution in distribution/distribution#3926

**Full Changelog**: distribution/distribution@v2.8.2...v2.8.3

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNTIuMSIsInVwZGF0ZWRJblZlciI6IjM3LjE1Mi4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIn0=-->

Reviewed-on: https://git.mgrote.net/mg/homeserver/pulls/667
Co-authored-by: Renovate Bot <renovate@mgrote.net>
Co-committed-by: Renovate Bot <renovate@mgrote.net>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants