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

Structure in experimental #2146

Closed
lkastner opened this issue Mar 27, 2023 · 3 comments · Fixed by #2157
Closed

Structure in experimental #2146

lkastner opened this issue Mar 27, 2023 · 3 comments · Fixed by #2157

Comments

@lkastner
Copy link
Member

lkastner commented Mar 27, 2023

I already talked about this to @fingolfin and @HereAround . The folder structure for experimental stuff is a bit confusing. There is experimental for source code, separate from src, while test/Experimental contains the tests and docs/src/Experimental contains the docs. Max proposed the following structure, which I like very much (if it is possible):

experimental/PACKAGE/{src,test,docs}

Then one could still have experimental/test.jl and experimental/experimental.jl for the code inclusions, not sure about the docs. In case there is not too much discussion, I would go ahead and implement these things in the lie algebra PRs #2145 and #2115, of course while coordinating with the respective authors. I don't think it is necessary to change this for the remaining things, but I'd also adapt the developer docs and then the old style should slowly fade out.

Maybe this also makes things easier for #2011.

@fingolfin
Copy link
Member

Yeah so the directory tree would look like this:

experimental/
├── ExteriorAlgebra
│   ├── README.md
│   ├── docs
│   │   └── intro.md
│   ├── src
│   │   └── main.jl
│   └── test
│       └── runtests.jl
├── GaloisGrp
│   ├── README.md
│   ├── docs
│   │   └── intro.md
│   ├── src
│   │   └── main.jl
│   └── test
│       └── runtests.jl
:
├── experimental.jl
└── runtests.jl

Of course there could be more files in each of the subdirs.

The content of experimental/experimental.jl could be just this:

import Glob   # just to keep this short, obviously we can also do it "by hand"
for fname in Glob.glob("*/src/main.jl")
  include(fname)
end

or if that's too "automagic", of course also this is fine:

include("ExteriorAlgebra/src/main.jl")
include("GaloisGrp/src/main.jl")

Similar for runtests.jl.

My main concern is whether and how this will work with the documentation, so that's the first thing I'd try experimentally: change docs/doc.main to refernece a file outside the docs dir, using ..

@fingolfin
Copy link
Member

And then next, how to add those files into the manual... right now we hook some of them into various parts of the hierarchy, manually. We can of course continue this, it's fine. Though I note that there are a few "orphaned" files in docs/src/Experimental, e.g. docs/src/Experimental/Singularities/space_germs.md (I realize this may be intentional, it's just hard to know w/o digging into git logs or asking the right people)

@lkastner
Copy link
Member Author

For the manual I wanted to go with your proposal from #2011 and introduce an experimental section.

@lkastner lkastner linked a pull request Mar 29, 2023 that will close this issue
lgoettgens added a commit to lgoettgens/Oscar.jl that referenced this issue Apr 2, 2023
lgoettgens added a commit to lgoettgens/Oscar.jl that referenced this issue Apr 2, 2023
lgoettgens added a commit to lgoettgens/Oscar.jl that referenced this issue Apr 2, 2023
lgoettgens added a commit to lgoettgens/Oscar.jl that referenced this issue Apr 2, 2023
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 a pull request may close this issue.

2 participants