Giter Club home page Giter Club logo

Comments (12)

mkitti avatar mkitti commented on May 22, 2024 1

Yes, the url keyword allows you to refer to any git repository. Also note the rev keyword is used for the git revision which could be a commit hash, branch, or tag.

from pysr.

MilesCranmer avatar MilesCranmer commented on May 22, 2024

Server seems to have updated. Closing.

from pysr.

MilesCranmer avatar MilesCranmer commented on May 22, 2024

Unfortunately appearing again for v0.5.10. I have pinned this issue in case some of the Julia servers are out of date - just follow the above commands to get it working.

from pysr.

mkitti avatar mkitti commented on May 22, 2024

For the impatient, I would just do the following to get the freshest release.

] add https://github.com/MilesCranmer/SymbolicRegression.jl#master

You can also replace master with a tag or commit hash. For example, you might this instead:

] add https://github.com/MilesCranmer/SymbolicRegression.jl#v0.6.0

from pysr.

MilesCranmer avatar MilesCranmer commented on May 22, 2024

Thanks!

I wonder if I should have PySR specify the Manifest.toml file (which could indicate the git repo) rather than just the Project.toml (which only indicates the project hash)? Then I suppose this would never be an issue - could just point directly to SymbolicRegression.jl.

from pysr.

mkitti avatar mkitti commented on May 22, 2024

If this is meant as a library, I would not include the Manifest.toml.

I typically only include the Manifest.toml for terminal projects that I may want to reproduce exactly.

from pysr.

MilesCranmer avatar MilesCranmer commented on May 22, 2024

Oh I meant for the point about including SymbolicRegression.jl based on the git repo URL, rather than the Julia registry. I'm not sure how else to do that, for PySR users, other than to include a fixed Manifest.toml. (is there any way to enforce that in a Project.toml?)

from pysr.

mkitti avatar mkitti commented on May 22, 2024

How users install your package is up to them not you, ultimately. For some, they either have to use specific mirrors or proxies for reliable access in their geographic locations. This is the problem that the pkg server protocol solves by providing a way to mirror and verify packages in a distributed and versioned fashion.

Pointing to your specific repository is a secondary option for those who cannot wait for the pkg servers to catch up and who also have reasonable direct access to Github.

So for the kind of package I think you are providing, I would recommend not including the Manifest.toml.

from pysr.

MilesCranmer avatar MilesCranmer commented on May 22, 2024

How users install your package is up to them not you, ultimately

This would be true if they were using the Julia API, but for PySR, I think this is only true for a handful of power users who know the julia_project param. >99% of PySR users have likely never installed a Julia package themselves, since PySR handles the installation of everything under the hood - it's these users I am concerned about over out-of-date registries.

The current approach to version control of Julia packages from within Python is to literally generate Project.toml in a temp directory, and activate it:

PySR/pysr/sr.py

Lines 340 to 358 in 1178fa3

def _write_project_file(tmp_dir):
"""This writes a Julia Project.toml to a temporary directory
The reason we need this is because sometimes Python will compile a project to binary,
and then Julia can't read the Project.toml file. It is more reliable to have Python
simply create the Project.toml from scratch.
"""
project_toml = """
[deps]
SymbolicRegression = "8254be44-1295-4e6a-a16d-46603ac705cb"
[compat]
SymbolicRegression = "0.7.7, 0.7.8"
julia = "1.5"
"""
project_toml_path = tmp_dir / "Project.toml"
project_toml_path.write_text(project_toml)

from pysr.

mkitti avatar mkitti commented on May 22, 2024

I'm not sure if I'm following why that is necessary. Couldn't you just run this code?

using Pkg
Pkg.activate(; temp=true)
spec = PackageSpec(name = "SymbolicRegression", uuid = "8254be44-1295-4e6a-a16d-46603ac705cb", version = v"0.7.7")
Pkg.add(spec)

from pysr.

MilesCranmer avatar MilesCranmer commented on May 22, 2024

Thanks, that definitely looks like a cleaner way to do it! (note I will be running this from PyJulia, not Julia)

Quick question: I found the url keyword which looks to allow you to specify a GitHub URL. Just to be clear: that would prevent Julia from checking the registry? I think that would finally eliminate this issue of out-of-date registries on user computers.

from pysr.

MilesCranmer avatar MilesCranmer commented on May 22, 2024

Starting with v0.7.4, #27 will never be an issue again since SymbolicRegression.jl is downloaded directly from the GitHub repo. Unpinning.

from pysr.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.