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

Consider deprecating old migrations #93

Closed
hsanjuan opened this issue Jan 30, 2020 · 6 comments
Closed

Consider deprecating old migrations #93

hsanjuan opened this issue Jan 30, 2020 · 6 comments

Comments

@hsanjuan
Copy link
Contributor

  • No one should be having to upgrade from really old versions
  • Users can always download an old version of fs-repo-migrations (workarounds exist)
  • Reduce maintenance burdens, code-size, binary size, number of tests
  • Cannot realistically spend time helping users on go-ipfs versions from 2 years ago
  • 5-to-6 migration is from 2017
  • 6-to-7 is from June 2018
  • Suggest to keep anything from 7 upwards.
@hsanjuan
Copy link
Contributor Author

Unfortunately, anything that directly or indirectly depends on badger will break with:

panic: /debug/requests is already registered. You may have two independent copies of golang.org/x/net/trace in your binary, trying to maintain separate state. This may involve a vendored copy of golang.org/x/net/trace.

This happens because old migrations have old gxed versions of things.

@Stebalien
Copy link
Member

Hm. Annoying. We could change how we vendor the trace library...

We really can't deprecate old migrations. Users may have old archived repos sitting around and we want to support reading from these repos.

@hsanjuan
Copy link
Contributor Author

We could change how we vendor the trace library...

I hacked it so things work for now. It will probably be a pain to align all migration submodules to use the same net/trace in the future, but for now things are ok.

@gammazero
Copy link
Contributor

@hsanjuan

I hacked it so things work for now. It will probably be a pain to align all migration submodules to use the same net/trace in the future, but for now things are ok.

This is now fixed permanently. Each migration is a separate binary, and all dependencies are vendored into each migration. There are no shared dependencies, and fs-repo-migrations downloads all necessary migration binaries and executes them in order.

@gammazero
Copy link
Contributor

No longer necessary as noted in the previous comment. Closing.

@hsanjuan
Copy link
Contributor Author

hsanjuan commented Apr 9, 2021

Thank you @gammazero , you resolved a big mess.

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

No branches or pull requests

3 participants