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

How to organize Julia code #96

Closed
sebasguts opened this issue Oct 24, 2018 · 5 comments
Closed

How to organize Julia code #96

sebasguts opened this issue Oct 24, 2018 · 5 comments

Comments

@sebasguts
Copy link
Contributor

I have been thinking lately about how to organize the Julia Interface code between LibGAP.jl and JuliaInterface. Currently, most of the code seems to be positioned arbitrary, and while JuliaInterface works without LibGAP.jl, the converse is false.

What would you think about JuliaInterface loading code from LibGAP.jl? I would then remove more Julia code from JuliaInterface and move it to LibGAP.jl. Or do you regard it bad practice if JuliaInterface loads code that is not in its package folder?

@wbhart
Copy link
Contributor

wbhart commented Oct 24, 2018

That would probably depend on whether you want to make these standard Julia packages or not. As a standard Julia package it certainly couldn't depend on code not in the package, unless that other package is in the REQUIRE file.

One has to be a little careful how sharing of code happens. Julia can be installed on virtual machines and clusters. Also, a lot of system admins will install Julia for their users and then install a bunch of packages their users most commonly use, to cut down the number of duplicate versions of those packages there are. But then individual users can have their own packages too. So that means one has to be careful how one goes looking for the code from another package. One simply can't assume it is in the user's local .julia directory.

How this all works with pkg3, I'm not too sure.

@sebasguts
Copy link
Contributor Author

Currently I do not see any problems with making this a Julia package, as all of this could be handled as "external" dependency. (I.e., GAP). I was more worried about making JuliaInterface a GAP package.

@ThomasBreuer
Copy link
Member

I think that users of JuliaInterface will probably need LibGAP.jl
because of its from_gap and to_gap functions.
Thus it would be good to guarantee that LibGAP.jl is always available.
And then it does not really matter where the actual code resides.

(By the way, we must be able to express, for GAP packages that rely on JuliaInterface,
which Julia packages are needed.
The GAP package can then decide whether it is loadable or not.
Perhaps this is another issue.)

@wbhart
Copy link
Contributor

wbhart commented Oct 24, 2018

Ok, I misunderstood. I thought you were talking about having a Julia package for loading JuliaInterface, and then loading that from LibGAP.jl. Of course your question makes a lot more sense now.

@sebasguts
Copy link
Contributor Author

This is done in #97 for now

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

No branches or pull requests

3 participants