Coder Social home page Coder Social logo

Comments (3)

domob1812 avatar domob1812 commented on June 15, 2024

Yes, that's possible - but it would, of course, increase the maintenance effort required for merging patches. Furthermore, I think we should aim to have a branch that is "stable" (well-tested) in general, not just with respect to upstream Bitcoin and still the newest Namecoin patches.

My own opinion since I started with Namecoin Core was that we should eventually start to do our own releases and release branches. They could roughly be based on Bitcoin releases, but need not be. Basically, we would branch off at some point, declare a release canditate, encourage people to test it, not further merge "bleeding edge" patches to the branch, and release it as official version as soon as it has been running in the tests for some time without issues.

We could start a branch right now - although, of course, everyone will have to upgrade again when we do the final hard fork getting rid of Namecoin 0.3.80.

from namecoin-core.

JeremyRand avatar JeremyRand commented on June 15, 2024

@domob1812 So, there are a couple of orthogonal issues here, I think. Regarding having a stable branch for Namecoin-specific things, yes, I think we should do that. However, I also think we should take advantage of the huge amount of QA testing that goes into Bitcoin, by basing our end user releases on Bitcoin releases. If we don't do that, then that means we have to take over the task of doing QA testing of Bitcoin commits, which is both a lot of work and also totally duplicative of Bitcoin developers' work.

So, I guess I would lean toward having these branches:

  1. bitcoin-master (same as Bitcoin's master branch).
  2. bitcoin-master-namecoin-master (Bitcoin master with Namecoin's latest dev commits)
  3. bitcoin-stable (same as Bitcoin release)
  4. bitcoin-stable-namecoin-master (Latest Namecoin dev commits, Bitcoin stable)
  5. bitcoin-stable-namecoin-stable (Namecoin release, based on Bitcoin stable with stable Namecoin commits)

(Of course we would also have the auxpow branches.)

The merge flow would be something like:

  1. bitcoin-master and bitcoin-stable come from Bitcoin, without changes by us.
  2. bitcoin-stable-namecoin-master accepts pull requests from Namecoin contributors, and merges from bitcoin-master-namecoin-master whenever Bitcoin makes a new stable release (meaning it gets all the Namecoin commits ported to the new Bitcoin stable from bitcoin-master-namecoin-master).
  3. bitcoin-master-namecoin-master merges from bitcoin-master and bitcoin-stable-namecoin-master, porting any Namecoin commits to bitcoin-master as necessary.
  4. bitcoin-stable-namecoin-stable merges from bitcoin-stable-namecoin-master whenever Namecoin makes a new stable release.

The "stable" label could also be replaced by specific versions, so that each major release gets its own branch (which lets us make beta releases from the stable branch before an official release).

Thoughts?

from namecoin-core.

domob1812 avatar domob1812 commented on June 15, 2024

We already have this now. Currently, the "stable" branch of Namecoin Core is 0.16, and I update it regularly with upstream changes to Bitcoin Core's 0.16 branch. (By own repo, https://github.com/domob1812/namecore also has bitcoin-0.16 and auxpow-0.16 branches corresponding to bitcoin and auxpow.) When Bitcoin branches 0.17, I will track that instead.

from namecoin-core.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.