Comments (5)
@mitchmindtree "packaging each of these tools individually" was my thought when I opened https://github.com/FuelLabs/pm/issues/19.
@adlerjohn suggested we do this instead here: https://github.com/FuelLabs/pm/issues/19#issuecomment-1157069847
I'm ok with both and can't really decide.
(I've also set P: Low
. This isn't a blocker or anything.)
from fuelup.
To understand this issue a bit better, what would be the usage like after publishing fuelup
to npm? As far as I understood from reading the linked PRs above (and your last comment here, there are 2 needs to fulfill:
- JS projects need to be able to use
forc
andfuel-core
and update them if necessary - the CI needs to be able to use forc
In the case of 2, would https://github.com/FuelLabs/action-fuel-toolchain be useful here?
from fuelup.
This is what I imagine:
- We go to a TS repo
- We do
npm add fuelup-bin
which will install a specific version offuelup
locked bypackage-lock.json
. - Now we can do
npm exec fuelup
,npm exec forc
andnpm exec fuel-core
because these are all binaries offuelup-bin
. - At this point
npm exec forc
andnpm exec fuel-core
fails because we don't have them installed. - We create a version file like
.forc-version
that will lock the version offorc
(which will also depend on a specific version offuel-core
so its version will be locked too). - Now we run
npm exec fuelup install
which sees our.forc-version
and installs the correct versions to the correct places sonpm exec forc
andnpm exec fuel-core
works. - Lastly we add
fuelup install
to ourpostinstall
script so when a new dev (or the CI) clones the repo and does annpm install
everything required will be automatically installed.
from fuelup.
Emphasis on the "installs [to the] correct places" by the way. The meaning is that these should be local installs scoped to the project and not global installs. People shouldn't clone a fuelup-bin
project and get their global installation messed up.
from fuelup.
@AlicanC I think there's a chance you might not actually want the fuelup
bin itself here.
fuelup
itself has a very narrow scope, which is providing an easy way to get going with the necessary set of tools required for fuel dev, including fuel-core
, forc
and a curated set of forc-plugins
. fuelup
can be thought of as a very minimal package manager that purely ships fuellabs tools and installs them at $HOME/.fuelup/bin
, with some convenience commands for switching between different version sets. This is quite useful as it means there's always a way for users to get started with Fuel dev, even if a user's OS or language package manager doesn't provide any of the fuel packages yet.
If other package managers (e.g nix, brew, npm, basel, whatever) plan to ship or integrate fuel-core
and forc
, they are very likely better off packaging each of these tools individually in their own way, as doing so will likely involve placing packages in certain standard paths, fetching them during some standard fetching stage, locking them, etc - all of which fuelup
does in its own way.
One thing other package managers might find useful is the version compatibility index that fuelup
's CI will eventually manage at this repo (not yet implemented). E.g. other package managers might benefit from using this to select compatible fuel tool version sets, but will likely want to fetch/build/lock/cache those themselves rather than doing so indirectly via fuelup
.
That said I've not much experience with npm
itself - let me know if I'm missing the point here!
from fuelup.
Related Issues (20)
- ci: track latest releases for other components HOT 2
- feat: support beta-3 toolchain
- ci: add date to re-publish latest channel HOT 1
- docs: describe usage of build-channel
- bug(tests): add fuel-core-keygen to expected binaries
- Add a `beta-3` entry under the `channels` chapter of the book.
- test: use fake binaries to test currently untested features
- forc deploy error Provider error: Response errors; Unknown field "status" on type "Message". HOT 2
- Update installation URLs in readme and the book
- test: support store within tests HOT 1
- docs: add an architecture page in the book
- replace actions-rs usage with dtolnay/rust-toolchain
- deprecate checking hashes to skip inefficient redownloads
- `forc deploy` binary not found when fuel-toolchain.toml is present
- [WSL] Could not build download configs from channel HOT 3
- define `stable` toolchains and design a release process for `stable` HOT 1
- Select custom toolchain
- Missing `build.sh` in sway repo sdk-harness tests breaks CI for toolchain compatibility HOT 1
- fuelup crashes when trying to install components HOT 2
- bump `indexer` binaries to `0.15.0` for beta-3 toolchain
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fuelup.