Giter Site home page Giter Site logo

Comments (7)

GregMefford avatar GregMefford commented on May 4, 2024

This begs the question of whether we should bring back the --target option to mix nerves.new so that this one dependency could be generated for the system they intend to use. In that case, would we simply depend on version >= 0.0.0?

from nerves.

ConnorRigby avatar ConnorRigby commented on May 4, 2024

I prefer not having --target flag. or make it optional at least.
We could have tooling for adding a system.

mix nerves.new blinky
mix nerves.system add "nerves_system_rpi3"

from nerves.

fhunleth avatar fhunleth commented on May 4, 2024

I'm not sure about nerves.system add since that feels like the user should be able to run it after they've substantially edited their mix.exs, and then we'd have to be careful about editing their existing deps.

Fwiw, I never had bad feelings towards the --target option on nerves.new. It seemed like a nice convenience for getting started. If it's optional, it would be nice to have a comment with what to fill in for the deps (maybe assume nerves_system_rpi3?) so that if people forget to run it, they can just uncomment some lines and go. Would that be ok?

from nerves.

GregMefford avatar GregMefford commented on May 4, 2024

I think it's reasonable for it to be optional and just default to putting the rpi3 dep in there by default.

Then again, we could just generate a list of all the popular options so the option is still not needed and it's easy to delete or ignore the ones you don't plan to use. The problem remains that we won't know what version of the system dep to include based on the --target option, so at least if they're all there, we can maintain a sane version baseline with each release of nerves_bootstrap.

from nerves.

fhunleth avatar fhunleth commented on May 4, 2024

I don't understand your comment on versions. If we're going to generate a nerves system dependency with nerves.new, we have to specify a version, but we do that now. I don't think this change makes versioning any worse in that regard.

from nerves.

GregMefford avatar GregMefford commented on May 4, 2024

We currently assume all the systems are (approximately) version 0.11.0. I thought part of the intent of this change was to decouple the versioning of the systems from one another, so that we don't have to assume that's the case.

If someone says --target rpi3 vs. --target ev3, we would need to know what version to generate for that dep, unless we just assume that >= 0.0.0 is good enough for all of them and people can choose a specific version if they want to.

from nerves.

fhunleth avatar fhunleth commented on May 4, 2024

Got it. That assumption that all systems are approximately version 0.11.0 is wrong. For the longest time, the BBB was a version ahead of the other systems. Now the alix, galileo, and ag150 systems are pretty far behind. The constraint to keep all systems roughly the same version is really hard to maintain. I have tried to keep versions the same since I do frequently do directory comparisons between systems to catch differences stylistic and other deltas. However, if I had appreciated the assumption that system version numbers had to be changed together, I would have pushed back sooner.

>= 0.0.0 isn't really right, but I don't have any better suggestions and I still like the idea that the system is automatically added in nerves.new.

from nerves.

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.