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

Modernize package #2

Merged
merged 4 commits into from
Mar 29, 2020
Merged

Modernize package #2

merged 4 commits into from
Mar 29, 2020

Conversation

jiahao
Copy link
Owner

@jiahao jiahao commented Mar 28, 2020

rofinn and others added 4 commits March 28, 2020 18:36
Got tests mostly passing on julia >=1.1 .

(cherry picked from commit b5b47cc)
- Delete obsolete REQUIRE
- Drop Manifest.toml (let Pkg version resolution do its thing)
- .gitignore Manifest
- Update dependencies in Project.toml
- Drop Julia 1.0 CI support (in preparation for multithreading updates)
- Update badges to use CI for fork

Signed-off-by: Jiahao Chen <[email protected]>
Throughout the package types are often hard-wired to be Float64. The PR lifts this restriction in some places to allow for any real type. In particular, tihs allows the use of Float32 or Float16 to reduce memory footprint. Structures like `QuadLoss` etc. still require modification in order to not cause conversions to Float64 when computations are made using its fields, but this PR at least allows the user to have data in other formats.

(from @baggepinnen)

Also removed some old comments about Julia v0.4

(cherry picked from commit 5b82fa8)
(cherry picked from commit 900a777)
@codecov-io
Copy link

codecov-io commented Mar 28, 2020

Codecov Report

❗ No coverage uploaded for pull request base (master@2daff36). Click here to learn what that means.
The diff coverage is n/a.

Impacted file tree graph

@@            Coverage Diff            @@
##             master       #2   +/-   ##
=========================================
  Coverage          ?   60.51%           
=========================================
  Files             ?       26           
  Lines             ?     1674           
  Branches          ?        0           
=========================================
  Hits              ?     1013           
  Misses            ?      661           
  Partials          ?        0           

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 2daff36...3333fff. Read the comment docs.

@jiahao jiahao merged commit d3a1d7d into master Mar 29, 2020
@jiahao
Copy link
Owner Author

jiahao commented Mar 29, 2020

Notes on package modernization

Recommend tool chain (and badges)

  • CI: travis-ci.com (macOS, Linux) and appveyor.com (Windows)
  • Code coverage: Codecov.io
  • Documentation: Documenter (2 badges for stable and dev)

General things

  • Travis now has allowed_failures
  • Travis and CodeCov and the like no longer use GitHub services which are now deprecated.
    • Instead, you should log on to each service and authorize them as GitHub OAuth apps.
    • Make sure to delete old webhooks from your repo under Repo > Settings > Webhooks otherwise tools like Travis will send conflicting messages from both the app webhook and the old github service-migrated webhook
  • Travis is in the midst of migrating from travis-ci.org to travis-ci.com.
    • To trigger the migration manually, go to Travis-ci.org > profile > settings > repositories > migrate
    • Don't forget to update your CI badges to travis-ci.com!
  • Manifest.toml
    • For a package, you don't need to commit Manifest.toml unless you have a specific need to pin down a very specific working environment.
    • Remember to .gitignore Manifest.toml and git rm Manifest.toml if you don't want it checked in
    • If your repo contains Julia code for a paper or experiments then you will probably want to commit Manifest.toml for reproducibility
  • If you need to create a Project.toml file (eg your repo only has the obsolete REQUIRES file)
    • julia -e 'using Pkg; Pkg.instantiate()' to create the template
    • julia --project=. points Pkg to the current working directory. ] add Foo will add the package Foo as a dependency.
      No need to manually look up the UUID of a package!
    • Remember to git rm REQUIRES when you're done
    • If there's a pinned dependency, try freeing the version requirement and see if it works with the latest version.

TODO

  • Codecov.io now comments on PRs and the like to generate code coverage reports.
    However, if you have multiple build environments in Travis then Codecov will blindly update the comment over and over again as the build for each environment completes.
    This is a problem when different build environments result in different code coverage numbers,
    which introduces indeterminacy in the code coverage PR hook for checking that code coverage must not decrease.
    Need to solve this race condition! Probably by getting only one build to report code coverage numbers.
  • How to register new versions?
  • How to migrate from Attobot to JuliaRegistrator?
  • How to enable package benchmarking? Is Nanosoldier.jl still around and available?
  • How to tag Zenodo DOIs? Is it still manual?

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.

4 participants