Comments (5)
Just to be clear - is it ok if the tests are run against a fuel-core binary, or is it necessary to build fuel-core from source, or run it within docker just like how the Sway repo does it as well? Or was running from docker out of necessity?
Whatever's easiest I think! I don't use docker and haven't had any troubles when running the E2E tests locally.
from fuelup.
Correct me if I'm wrong: the e2e tests in the sway repo here are enough to guarantee that the latest forc
release works with whatever the version of fuel-core
was being used in the tests (especially since there are tests that run on the config run_on_node
), however it is not enough to guarantee that if a new fuel-core
version was released without a new forc
release, we don't know for sure that the new fuel-core
is compatible - hence the need for this issue.
So the problem is again the decision of where these checks live like we discussed in #66, whether it should be a push-based check or a pull-based check.
If we opt for a push-based check, I imagine we could have fuel-core
, on release, trigger a workflow_dispatch
event within the sway_repo
to run integration tests with the new fuel-core
version. Then we'd need a way to communicate whether it passed or failed to fuelup. I'm not sure how useful this would be to the sway repo alone to know that there could be breaking changes on new fuel-core
releases, if it is not useful at all then perhaps it isn't a good idea to do this just for fuelup
.
The alternative is to use this repo to, again, poll for new releases, checkout the code and run them on the CI here(?). Again, it seems like both solutions aren't perfect but I think it'd be messier if we left it up to the sway
or fuel-core
repos. I think sticking to the maxim of ignorance of fuelup is a good way to go here?
from fuelup.
It would be a shame to have some test here that could have been added to Sway and caught some incompatibility bug earlier in the release process.
Agreed, I think tests should be written in the Sway repo, and we just need to decide if we want to check compatibility here (by pulling code from both repos and running tests), or in the Sway repo.
from fuelup.
Correct me if I'm wrong: the e2e tests in the sway repo here are enough to guarantee that the latest forc release works with whatever the version of fuel-core was being used in the tests (especially since there are tests that run on the config run_on_node), however it is not enough to guarantee that if a new fuel-core version was released without a new forc release, we don't know for sure that the new fuel-core is compatible - hence the need for this issue.
Yes exactly 👍
So the problem is again the decision of where these checks live like we discussed in #66, whether it should be a push-based check or a pull-based check.
I think it might make sense to pull for these, particularly as we only need to test upon detecting a new release from either fuel-core
or forc
. I'm imagining something along the lines of:
- Cron checking for new releases
- New release detected
- Work out
fuel-core
andforc
versions to test together - Fetch sway repo (probably another good case for using shell script 🥲)
- Run the E2E tests with
forc
andfuel-core
versions to test. Possibly use a regex to filter for the integration tests. - Upon success, update toolchain versions in the index.
- Upon failure, leave toolchain versions as they are and record somewhere the version set that failed (this should be checked before running the tests, otherwise if there's a failure the cron-job will just keep running the same failed tests over and over).
^ @binggh what are your thoughts on something like this?
from fuelup.
Sounds good! Unfortunate that we have to once again rely on scripting for this but given that it's a part of the CI and not really a part of the fuelup
package itself it seems acceptable to me.
I'd probably implement it somewhere along the lines of the current index-versions
script as well - checking for new releases on a 30 minute time interval.
Just to be clear - is it ok if the tests are run against a fuel-core
binary, or is it necessary to build fuel-core
from source, or run it within docker just like how the Sway repo does it as well? Or was running from docker out of necessity?
from fuelup.
Related Issues (20)
- fuelup component add <name>
- fuelup component remove <name>
- MULTIPLY INCREMENT USING SWAY LANGUAGE HOT 1
- Deployed a simple contract using sway playground HOT 3
- Allow creating a new toolchain from an existing one HOT 1
- Add beta-5 entry under channels in Fuel book HOT 1
- When will SWAP trading be added to the wallet? HOT 1
- Cannot download nightly HOT 1
- macOS cant install fuelup HOT 2
- Create a CI run for new network addition PRs to check integrations tests
- Missing components in nightly channels
- Rework the component selection such that we can select versions for indiviual versions for sway repo as well HOT 3
- Improvements to Fuelup CLI Error Handling and Logging
- After installing a toolchain, default to that toolchain HOT 2
- "Failed to download" error after `fuelup update`
- Add a `fuelup upgrade` command HOT 1
- Panic in fuelup "no entry found for key"
- Prevent indexing panics
- Add the `indoc` crate to help clean up examples
- Track code coverage HOT 1
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.