-
Notifications
You must be signed in to change notification settings - Fork 32
Include node
in workspace
#53
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Include node
in workspace
#53
Conversation
This is mainly to see what happens. I'll come back to debug this. |
BOOM! Mad, no further improvements needed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK 84ac230; successfully ran local tests
Lemme dig into this -- did not expect that local CI run to pass. |
Ah, it looks like you removed |
change does not do what I expected to local CI
Neither did I.
lol, its hard to get good help. |
84ac230
to
81101c7
Compare
FTR what is the point of having both an explicit 'include' and an 'exclude' list - surely one is default since something must be either in the group or out of the group. |
Ah good, my local test command is now failing.
Face palm. |
I think that if you have a crate in neither list, and you try to build that crate directly, it'll complain that it sees a Cargo.toml in a higher directory and isn't sure what to do. I don't know if this is a bug or intended behavior or what. Anyway, looks like we're getting the CI failures that we expect now. |
f2af300
to
313ef9d
Compare
8a0e63d
to
d276794
Compare
d276794
to
68c6087
Compare
I'll come back and debug tomorrow. |
9ead0fa Make anyhow an optional build-dependency (Tobin C. Harding) 4016843 Put dep on single line (Tobin C. Harding) Pull request description: Quick cleanup to the `node` manifest. Done while working on #53 ACKs for top commit: apoelstra: ACK 9ead0fa; successfully ran local tests Tree-SHA512: d5556518779eae439858c656583a426b36d2d96753c21157955564d67482bfd251696498417b8a8e21d95f87e07dd71b9b3770f5dc4fb27679097c57f929c2b1
5e69dc4
to
13d2815
Compare
Now includes a custom lint script. And WIN, the script found a bug in the feature gating of |
bdefcaa
to
17b94df
Compare
389c995
to
84c45ba
Compare
Lol, nice, adding those redudant imports so the compiler output isn't such a mess without features. |
In 84c45ba: This does not build if you enable It may help to draw out an ascii-art truth table in the file. |
There is no reason to enable |
I think its correct as it is man. We are abusing the If I'm correct then it implies changing your CI, is that acceptable? |
I was ok with saying "you need at least one of the version features" but not with this byzantine set of rules for which feature combinations are permissible. I can update my local CI but I haven't even gotten that far because manually understanding the feature gates takes so much work and I haven't completed it without encountering something surprising. At the very least, if we don't want certain combinations to work then we should have an explicit |
Let me try solve this at a higher level. We have a bunch of smellyness in the features. |
84c45ba
to
8fd2752
Compare
Hoorah!! We got there. I removed the |
Hopefull the docs build done by docs.rs does not run the tests during its build process. Because this crate's docs currently exist online I rekon this is true. |
I've almost got this. My local CI has a There are similar lines all over the place which cover things like doctests which crate2nix/cargo don't test unless you go out of your way to explicitly specify, and they all break in some way with this crate. |
8fd2752
to
84a2017
Compare
Holy smokes this one should not have been so hard. Here is another attempt. Please see #45 (comment) and also the additional patches before the last in this PR.
I owe you a beer for this one. |
In rust-bitcoin#45 we removed the default feature because we were setting it to `28_0` and this was a footgun because downstream crates needed to explicitly use no default features. This change made it impossible to build the crate without selecting a version feature which implicitly means `--no-default-features` does not work. Instead we can set the default to `0_17_1` and then the crate builds with no default features and also downstream users who select a higher version get correct behaviour because higher versions override lower ones.
In the comments I got mixed up between this crate and the `node` crate. Annoyingly, and confusingly, the unusual features in these two crates do not behave the same. In integration tests we feature gate tests on a specific version - this means the version features are mutually exclusive.
Currently we do not include the `node` crate in the workspace because `run_task` did not support testing it. However `run_task` has now been patched. Include `node` in the workspace. Configure it to work with the newly patched `run_task`. Add a `extra_tests.sh` script that runs the `node` tests. In order to get MSRV building we make all deps use `default-features = false` then explicitly enable just what we need. Also change the feature guarding in the build script so that `--all-features` works. This is already supported in the main crate code since the highest version feature overrides the lower ones.
84a2017
to
03b9350
Compare
LOL ok, yeah, I'll go digging around to find a copy of boost 1.75 and miniupnpc 2.2.7 and gcc 11 and whatever libc I need to work with it. (These changes don't actually make the situation any worse -- if it's true that I need to somehow obtain and run extremely old versions of Core to make the tests pass then that's going to be a problem for me no matter what.) |
How about we not run |
As long as If I can't build specific versions of Core then sure, I can just disable those. |
I don't know what to do about this now man. |
I'm working on it. |
No stress, no rush. FTR I'm not itching to release now, that itch went away. |
Hey man, I'm going to go ahead and merge this. I need some time away from |
No problem. I can test my local CI against master while I'm getting it working. |
Currently we do not include the
node
crate in the workspace becauserun_task
did not support testing it.However
run_task
has been patched. Additionally we discovered that we were not testing the docs with--all-features
(or any code for that matter other than linting). Fixed in:rust-bitcoin/rust-bitcoin-maintainer-tools#20
Which this patch uses.
Include
node
in the workspace. Configure it to work with the newly patchedrun_task
. Add aextra_tests.sh
script that runs thenode
tests.In order to get MSRV building we make all deps use
default-features = false
then explicitly enable just what we need.Also change the feature guarding in the build script so that
--all-features
works. This is already supported in the main crate code since the highest version feature overrides the lower ones.