GithubHelp home page GithubHelp logo

Comments (4)

Araq avatar Araq commented on June 12, 2024

The logic has been automated in the atlas env command.

from csources_v2.

PMunch avatar PMunch commented on June 12, 2024

Okay, that's no reason to not make the system easier though. I don't really see the drawback of keeping separate versions and tag them over having to implement the logic in every tool.

from csources_v2.

Araq avatar Araq commented on June 12, 2024

Well any other solution would need to be automated too and the logic would hardly be any simpler. Tagging here is fundamentally flawed as it means:

  1. More frequent pushes to csources are required. But we release Nim versions more often than we release csources.
  2. csources is supposed to be stable. git clone csources should not mean "give me the latest version", it should mean "give me something that doesn't change".

And while it means work for you to support later Nim versions it also means the previous versions keep working for good.

from csources_v2.

PMunch avatar PMunch commented on June 12, 2024

I think we might be talking about different things. I'm not saying that the csources should be built for every Nim version. The csources should exists exactly as they do today, but just stay within one repository. Then each version only add a new tag in the Git repository pointing to the same commit. This means that if I want to build version 1.6.14 for example I simply clone with git clone --depth 1 --branch v1.6.14 https://github.com/nim-lang/csources. Since Git now has a tag v1.6.14 which points to the commit that contains what is now csources_v1 it will grab the correct version. For version 2.0.0 simply take the code which now lives in the csources_v2 repo, add it to the csources repo (alternatively as its own branch) and tag the commit with v2.0.0. The command to clone the csources for v2.0.0 is now git clone --depth 1 --branch v2.0.0 https://github.com/nim-lang/csources. The only thing which changes in this case is the tag name, and the repo still only contains one commit per major revision of the csources. So when Nim v2.0.2 rolls around you don't any new commits to the csources repo, you simply add a v2.0.2 tag to the same commit as the one the v2.0.0 tag points to. It's the same system for csources which is used today, just much easier to grab the right version from a script.

from csources_v2.

Related Issues (2)

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.