-
Notifications
You must be signed in to change notification settings - Fork 17.7k
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
cmd/go: add 'go release' #26420
Comments
|
Comparing NoRedInk/json-elm-schema 1.5.0 to 3.0.0...
This is a MAJOR change.
------ Changes to module JsonSchema - MAJOR ------
Added:
additionalItems : JsonSchema.Schema -> JsonSchema.TupleSchemaProperty
examples : (a -> Json.Encode.Value) -> List a -> JsonSchema.BaseSchemaProperty extras
maxProperties : Int -> JsonSchema.ObjectSchemaProperty
minProperties : Int -> JsonSchema.ObjectSchemaProperty
tuple : List JsonSchema.TupleSchemaProperty -> JsonSchema.Schema
tupleItems : List JsonSchema.Schema -> JsonSchema.TupleSchemaProperty
Changed:
- boolean : List (JsonSchema.BaseSchemaProperty {
}) -> JsonSchema.Schema
+ boolean : List JsonSchema.BooleanSchemaProperty -> JsonSchema.Schema
- maxItems : Int -> JsonSchema.ArraySchemaProperty
+ maxItems : Int -> { a |
maxItems : Maybe.Maybe Int
} -> { a | maxItems : Maybe.Maybe Int } |
for building automated release notes (to encourage releases to have notes):
|
Isn't that a bit specific to the Go project itself? I haven't seen it in any other projects. Unless the idea is to start encouraging this practice, which might work out. |
|
Useful if the current module is intended to be imported as a dependency but uses local replace/exclude directives that will be ignored by the ultimate top-level module. (This is the use case described in #24666, but that was closed with a 'Fixes #24666' comment in a CL that caused the issue to be closed automatically, but the CL did not implement the described behavior. Not sure if that 'Fixes #24666' comment was accidentally or deliberately left in the broader CL). |
I don't know the degree to which the intent is to automatically do things covered by other commands, but wanted to at least record these as options to consider. |
The overall design of the system is such that a module author might not ready to move to the latest version of dependencies for the module's Coupled with the fact that the module author would already naturally be testing against versions used in the actually released |
(Related to #27542.) |
/cc @bradleyfalzon who created |
Recommend which kind of semver change to make, patch bump or minor bump. Major bumps (incompatible changes) are more involved, as they require a new import path & work to allow the new major version to coexist with previous ones (e.g., by wrapping & adding aliases, or extracting package-level state into a shared internal package). |
Detect when creating go.mod in a directory under an existing go.mod (is this an error?) CC @hyangah |
I think @jba is planning to do some preliminary work, but this needs more design. Pushing to 1.13. |
I'm working only on the part that recommends which part of the semver to bump. |
For example, if module A requires v0.1.0 of dependency D, and module B requires v0.2.0 of dependency D, then the build will use v0.2.0 of D. However, that might subtly or explicitly break A, given v0 is a "compatibility free zone", and hence this scenario might be worth some flavor of detection or warning. |
The spec/design doc for API compatibility checks is ready. Implementation is in review. |
• hard warning if the module has a transitive dependency on its own path at a version that falls semantically after the proposed tag (#31491) |
|
@thepudds That's the plan right now. We're planning to develop this as |
Change https://golang.org/cl/190904 mentions this issue: |
Change https://golang.org/cl/197299 mentions this issue: |
Experience reports from the cl/197299 patch set 4:
|
Change https://golang.org/cl/216078 mentions this issue: |
gorelease is an experimental tool that helps module authors avoid common problems before releasing a new version of a module. gorelease is intended to eventually be merged into the go command as "go release". Updates golang/go#26420 Change-Id: I23fbab171b2cb9f4598fa525ecef5dcf006dc7c4 Reviewed-on: https://go-review.googlesource.com/c/exp/+/197299 Run-TryBot: Jay Conrod <jayconrod@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com>
If the -base flag is not set on the command line, it is now inferred from the -version flag and available versions. If the -version flag is given, the base version will be the highest available release version lower than -version. Otherwise, the base version will be the highest release version. Pre-release versions are not considered. If there are no appropriate versions, and the release version is unspecified or appears to be the first release (e.g., v0.1.0, v2.0.0), the inferred base version will be "none" (meaning no comparison will be made). Otherwise, an error will be shown. Updates golang/go#26420 Change-Id: Iee45a4183f3e4a219c02a69b5d16a3cc5478644c Reviewed-on: https://go-review.googlesource.com/c/exp/+/216078 Run-TryBot: Jay Conrod <jayconrod@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com>
Unassigning myself since I'm leaving, but @jadekler is still looking at this. The prototype in |
I am testing the usage of I am getting everywhere the following message:
I also get errors like
which should be handled by the |
Although I assigned myself on this issue a while ago, that was more of an aspiration :) I won't be able to look into this in the near future. My apologies. |
Collecting things we would want a 'go release' command to do:
The text was updated successfully, but these errors were encountered: