Skip to content
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

Drop nim-json-serialization for testing #156

Merged
merged 1 commit into from
Feb 9, 2021
Merged

Drop nim-json-serialization for testing #156

merged 1 commit into from
Feb 9, 2021

Conversation

mratsim
Copy link
Owner

@mratsim mratsim commented Feb 9, 2021

How to lose an evening due to flaky tooling and bugs (nim-lang/RFCs#300)

Context

  1. PR Double-Precision towering #155 is blocked by CI failing to clone BearSSL, a commit was removed from the tree (security issue?) https://github.com/mratsim/constantine/runs/1865343014#step:15:60
  2. BearSSL is brought by a dependency chain that involves nim-json-serialization Strange dependency tree status-im/nim-json-serialization#25
  3. Nimble doesn't support task-level dependencies which makes it a pain to specify packages as optional Feature: Task-level dependencies nim-lang/nimble#482, Optional dependencies nim-lang/nimble#506
  4. I couldn't test Constantine as a result

Incidental Fixes

  1. No more workaround for Generics regression: getTypeInst causes issue with generic constraints status-im/nim-serialization#33
    Which required uninstalling nim-serialization before reinstalling it because Nimble has no pinned dependency support Locking of dependencies nim-lang/nimble#127

    - name: Install test dependencies
    shell: bash
    # Workaround #113 and https://github.com/status-im/nim-serialization/issues/33
    # and nimble flaky pinning / dependency resolution,
    # json_serialization install would override nim-serialization pinning
    run: |
    nimble refresh
    nimble install -y gmp stew json_serialization
    nimble uninstall -y serialization
    nimble install serialization@#217d78a

  2. No more CI being stuck due to slow resolving of dependencies: Modern techniques for dependency resolution nim-lang/nimble#890, 40s jusst to install gmp, stew and nim-json-serialization (https://github.com/mratsim/constantine/runs/1851076249#step:15:1)
    image

  3. No more fighting against the generic sandwich Generics "sandwiched" between two modules don't mixin their scope symbols properly nim-lang/Nim#11225

@mratsim mratsim merged commit 491b4d4 into master Feb 9, 2021
@mratsim mratsim deleted the json-tests branch February 9, 2021 21:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant