Comments (3)
- For testing, blscurve now requires NimYAML, it's not a package dependency so I did not list it in the .nimble file
- In the CI setup it has been added as via a
nimble install https://github.com/status-im/NimYAML@#head
precedingnimble test
- To make matter worse, the original yaml package was broken by YAML upstream deleting a commit that prevents
git submodule update
to work in nimYAML flyx/NimYAML#77. This means that requiring the yaml package will also trigger failures - AFAIK we can't do
requires https://github.com/status-im/NimYAML@#head
in a nimble file as a work-around - Nimble doesn't support task-level dependencies nim-lang/nimble#482
Plans forward:
- We can't wait for nimble features (i.e. requiring a repo path + branch and task-level dependencies)
- We can't wait for
nimble install yaml
to be fixed
So I recommend you disable blscurve and probably all packages that requires NimYAML in the Nim CI for the time being.
In the future (a week or so), once official test vectors are available (in json format) we will remove the dependency on the current YAML test vectors (cfrg/draft-irtf-cfrg-hash-to-curve#214)
from nim-blscurve.
- maybe send an issue to https://github.com/flyx/NimYAML/issues (and link here)?
AFAIK we can't do requires https://github.com/status-im/NimYAML@#head in a nimble file as a work-around
wouldn't that increase chances of mutually exclusive requirements, eg:
pkg1:
requires https://github.com/status-im/NimYAML@#head
pkg2:
requires https://github.com/status-im/NimYAML@#1234 #
pkg3:
requires pkg1, pkg2
the alternative is:
- nimble develop https://github.com/status-im/NimYAML (or manually via git clone until nim-lang/nimble#577 is fixed)
- if needed checkout a specific hash
- proceed with installing other packages
in any case, that discussion should happen in https://github.com/nim-lang/nimble/issues otherwise will never be fixed; maybe open an issue there and link to here?
task-level dependencies
can then be achieved by (untested):
nimble install -d:with_foo mypkg
# mypkg.nimble:
when defined(with_foo):
requires foo
from nim-blscurve.
- You probably missed flyx/NimYAML#77 in my post.
- For the mutually exclusive requirements, it should be discussed in the lock files issue: nim-lang/nimble#127. Being unable to install
pkg3
due to conflicting requirements is not a bug.
- We can also requires that a minimal commit or a maximum commit in the package for more flexibitlity but targeting a specific commit seems like a nice start.
- Alternatively, Rust can somehow handle multiple conflicting requirements in the same codebase, including versions of the Rust compiler. But AFAIK that would require a lot of plumbing on Nim side to be able to do the same.
- Using
nimble install -d:with_foo mypkg
is not really an improvement overnimble install yaml mypkg
for testing. Both require to be aware of specific testing dependencies.
from nim-blscurve.
Related Issues (20)
- Azure Pipelines: % encoding failure
- Port tests to `unittest2`
- Insufficient private key validation (from nimbus-eth2)
- [Miracl] Default init to infinity point HOT 1
- [Optim] Replace EIP2333 routines by builtin ones HOT 1
- Compiled version HOT 6
- Reject invalid serialized infinity points
- [BLST] Remove heap allocation on aggregateVerify HOT 1
- [SEC] Unnecessary HMAC Call in HKDF HOT 1
- [SEC] Insufficient Input Validation
- [SEC] Missing `norm` Operations
- [SEC] Infinity Public Key and Signature
- [SEC] Missing Check in `aggregate*()` Which Cannot Return INVALID HOT 1
- [SEC] Extraneous Exports and Dead Code HOT 1
- Azure pipelines is too slow HOT 1
- Upgrade BLST and remove 2 now unnecessary workarounds HOT 4
- [SEC] EIP 2386 Specification Completeness
- Miracl backend: Accelerate "KeyValidate" HOT 4
- BLST upgrade: notice of APi change HOT 1
- Fuzzing: multiple definition of functions 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 nim-blscurve.