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

gcs: Start v2 module dev cycle. #1843

Merged
merged 1 commit into from
Aug 20, 2019

Conversation

davecgh
Copy link
Member

@davecgh davecgh commented Aug 19, 2019

This removes the unused and undesired FromPBytes and FromNPBytes functions and associated tests from the gcs module in preparation for upcoming changes aimed to support new version filters for use in header commitments.

Since these changes, and several planned upcoming ones, constitute breaking pubic API changes, this bumps the major version of the gcs module, adds a replacement for gcs/v2 to the main module and updates all other modules to make use of it.

It also bumps the rpcclient module to v5 since it makes use of the gcs.Filter type in its API, adds a replacement for rpcclient/v5 to the main module and updates all other modules to make use of it.

Note that this also marks the start of a new approach towards handling module versioning between release cycles to reduce the maintenance burden.

The new approach is as follows.

Whenever a new breaking change to a module's API is introduced, the following will happen:

  • Bump the major version in the go.mod of the affected module if not already done since the last release tag
  • Add a replacement to the go.mod in the main module if not already done since the last release tag
  • Update all imports in the repo to use the new major version as necessary
    • Make necessary modifications to allow all other modules to use the new version in the same commit
  • Repeat the process for any other modules the require a new major as a result of consuming the new major(s)

Finally, once the repo is frozen for software release, all modules will be tagged in dependency order to stabilize them and all module replacements will be removed in order to ensure releases are only using
fully tagged and released code.

@davecgh davecgh added this to the 1.5.0 milestone Aug 19, 2019
@davecgh davecgh force-pushed the gcs_devel_introduce_v2 branch from e542ae1 to 8539ae9 Compare August 19, 2019 08:18
blockchain/go.mod Outdated Show resolved Hide resolved
@davecgh davecgh force-pushed the gcs_devel_introduce_v2 branch from 8539ae9 to 697267f Compare August 19, 2019 17:38
This removes the unused and undesired FromPBytes and FromNPBytes
functions and associated tests from the gcs module in preparation for
upcoming changes aimed to support new version filters for use
in header commitments.

Since these changes, and several planned upcoming ones, constitute
breaking pubic API changes, this bumps the major version of the gcs
module, adds a replacement for gcs/v2 to the main module and updates all
other modules to make use of it.

It also bumps the rpcclient module to v5 since it makes use of the
gcs.Filter type in its API, adds a replacement for rpcclient/v5 to the
main module and updates all other modules to make use of it.

Note that this also marks the start of a new approach towards handling
module versioning between release cycles to reduce the maintenance
burden.

The new approach is as follows.

Whenever a new breaking change to a module's API is introduced, the
following will happen:

- Bump the major version in the go.mod of the affected module if not
  already done since the last release tag
- Add a replacement to the go.mod in the main module if not already
  done since the last release tag
- Update all imports in the repo to use the new major version as
  necessary
  - Make necessary modifications to allow all other modules to use the
    new version in the same commit
- Repeat the process for any other modules the require a new major as a
  result of consuming the new major(s)

Finally, once the repo is frozen for software release, all modules will
be tagged in dependency order to stabilize them and all module
replacements will be removed in order to ensure releases are only using
fully tagged and released code.
@davecgh davecgh force-pushed the gcs_devel_introduce_v2 branch from 697267f to feb4ff5 Compare August 20, 2019 14:07
@davecgh davecgh merged commit feb4ff5 into decred:master Aug 20, 2019
@davecgh davecgh deleted the gcs_devel_introduce_v2 branch August 20, 2019 14:16
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.

5 participants