-
Notifications
You must be signed in to change notification settings - Fork 18
fill in ACE1pack #1
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
Conversation
|
Yes, Elena and I have been coordinating quite closely in designing ACE1pack and IPFitting, and will continue to do so. Let's discuss tomorrow, I think we're quite close. Regarding the regularisation interface the idea is to put the ACE1.scaling oneliner into ACE1pack. This way we set up the preconditioning matrix in ACE1pack (which has the ACE dependency) and send it to IPFitting for fitting. |
|
I'm ok with that. |
|
The TiAl tutorial now works - see I'm working on the unit tests, but that can also done as another pull request if you think that it's better to merge and open this up for everyone as soon as possible. Looking forward to any comments on the code! |
|
so in principle you think it is ready to tag a first 0.0.1 version? and let people try it out? |
|
yes, I think so! |
|
The current tests mostly just call functions to make sure they execute without an error. I thought anything less trivial (mainly - that the objects constructed from given parameters are correct) would be tested within the underlying modules and that testing for specific outputs (e.g. that default values are as expected) seemed maybe excessive. Is there anything else that would be good to test for? The tests on GitHub currently fail, has anyone stumbled upon anything similar?
I think this should have everything that is needed at the first instance. I would eventually like to use multitransform and be able to specify polynomial degree for each correlation order, but I would first like to integrate ACE1pack with Workflow. |
|
Thank you very much for all the feedback! I think I have followed up to all of your suggestions - looking forward to any other comments. |
|
@gelzinyte you may want to put a lower version bound 0.11.4 for JuLIP so that the YAML works. |
|
@cortner do you have any further feedback? Maybe it would be good to merge and open this up to others and add any further changes as separate pull requests? |
| if typeof(params["e0"]) == Dict{Any, Any} | ||
| # sometimes gets read in (from yaml?) as Dict{Any, Any} | ||
| # which gives StackOverflowError somewhere in OneBody | ||
| params["e0"] = convert(Dict{String, Any}, params["e0"]) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sounds like it should be filed as an issue with JuLIP
|
@gelzinyte all looks good. Just need to confirm a licensing issue with @gabor1 and then we should be ready to merge. Thank you for taking the lead on this. I'll wait for your instruction though to first merge the data repo and then this here. We can try to wrap it up tomorrow (Tuesday). |
|
hm .... I'm struggling with the Artifacts... |
|
and even if I fix the sha and switch to LazyArtifacts, I get this: |
|
thoughts? |
|
I think the problem was that the line was modifying the The problem appeared only after removing the appropriate directories under My workaround was to generate the hash myself, although I'm surprised that I had to, so maybe something's not as it's supposed to be? Also, a (small?) caveat - this relies on any downloaded artefacts being already compressed or small. Unfortunately, something's still wrong and the error message isn't very helpful: |
|
so we are still stuck here? ... |
|
I thought the hash can be just anything (compatible with whatever keys they use...) but you are saying this is not the case? |
|
|
||
| artifacts_toml = joinpath(pathof(ACE1pack)[1:end-16], "Artifacts.toml") | ||
|
|
||
| function _get_sha256(filename) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this sound? Will return close the file?
Alternatively, I thought about
function _get_sha256(filename)
open(filename) do f
global hash = bytes2hex(sha256(f))
end
return hash
end
but it seemed wrong to make hash accessible across the script.
It wasn't clear to me what is the correct way to access anything derived from the file contents outside of the do block. Maybe in that case one should explicitly close() the file?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm afraid I have no memory about how this works. Have you checked what I did in ACE1.jl?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Artifacts.toml:
["acedata_v0.8.1"]
git-tree-sha1 = "23a2e3400188336105a4e47c31cdb7ce95a104cb"
lazy = true
[["acedata_v0.8.1".download]]
sha256 = "91305df8a0b0572630b9be4b2f3b7e16fc14b2683182e25f18a338036eac0305"
url = "https://github.com/ACEsuit/ACEData/archive/v0.8.1.tar.gz"
and then in artifacts.jl:
using Pkg.Artifacts
datadir = joinpath(artifact"acedata_v0.8.1", "ACEData-0.8.1")
testsdir = joinpath(datadir, "tests")
traindir = joinpath(datadir, "trainingsets")
potsdir = joinpath(datadir, "potentials")
# unzip the eam potential
if !isfile(joinpath(traindir, "w_eam4.fs"))
eamzip = joinpath(traindir, "w_eam4.fs.zip")
run(`unzip $eamzip -d $traindir`)
endThere was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why do you even need the sha in artifacts.jl?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why do you even need the sha in artifacts.jl?
bind_artifact!() needs both sha and url and you need the url to get the artefact.
I thought the hash can be just anything (compatible with whatever keys they use...) but you are saying this is not the case?
hashes for the downloaded file and file used to create the artefact need to match, no? I thought the initial error was raised because they didn't.
ACE1 artefacts are successfully downloaded with what I thought was equivalent code, so maybe the issue is with how the original artefact files were set up. I'll see if I can make any progress tomorrow
|
The issues with artefacts only relate to tests. Since there is another PR coming to fix the GitHub's CI, what do you think about fixing the artefacts there as well? |
|
ok, then I'll merge and tag a first version. We can go back to all remaining issues afterwards. |
|
thank you again for all your work on this. |
|
done, this is tagged as 0.0.1 |
Root cause: This is a fork repository (jameskermode/ACEpotentials.jl) forked from upstream (ACEsuit/ACEpotentials.jl). GitHub Actions don't run automatically on forked repositories due to security restrictions. This is standard GitHub behavior to prevent: - Malicious code execution - CI minute abuse - Secrets exposure - Resource waste Solutions documented: 1. Enable GitHub Actions in fork settings (recommended) 2. Manual workflow dispatch 3. Create PR to upstream instead 4. Test locally with Julia See FORK_CI_ISSUE.md for detailed analysis and step-by-step fixes. Related: PR #1 at jameskermode#1
…-011CV4PfXPf4MHS4ceHdoMQe Migrate from EquivariantModels.jl to EquivariantTensors.jl
A draft of a complete package. @casv2 (and anyone else if they wish!) could you please leave some early feedback on the work in progress? Anything missing, any suggestions? Some things need better names (e.g.
everything.jl&fit_ace).Meanwhile, I'll work on debugging, tests & CI, TODO's and docstrings in the code. These should be done before merging, but I have left some "enhancement" comments in the code that might be useful in slightly longer term.