Github actions CI fails saying my package is not installed, but only on Windows and Mac

My package is not registered yet (it is a new package, which I registered for the first time yesterday). The CI action runs without errors for Ubuntu, but on Windows and Mac I am getting these errors:

On Mac:

 ERROR: LoadError: ArgumentError: Package SPGBox [bf97046b-3e66-4aa0-9aed-26efb7fac769] is required but does not seem to be installed:
 - Run `Pkg.instantiate()` to install all recorded dependencies.

Is this related to the package not being registered yet? The CI run in Ubuntu goes fine, without errors. Package SPGBox mentioned is the package in question.

On Windows:

  "C:\Program Files\Git\bin\git.exe" checkout --progress --force -B master refs/remotes/origin/master
  Error: error: invalid path 'src/Aux.jl'
  Error: The process 'C:\Program Files\Git\bin\git.exe' failed with exit code 128

The “Aux.jl” file is one file of the package, as any other, in the default src directory. I do not understand why it is complaining that it is not there.

This is the package page, if that helps: https://github.com/m3g/SPGBox

Could it be something to do with path separators? Here it is referring to src/Aux.jl with forward slashes, but windows (ant he other paths in that message) use backslashes.

I haven’t had a look at the code, but maybe make sure you are using joinpath whenever you are constructing paths.

The main module file is this:


module SPGBox
  include("./SPGBoxResult.jl")
  include("./Aux.jl")
  include("./pr_gradnorm.jl")
  include("./spgbox.jl")
  export spgbox!
end

It may be the “./”? But I have always used this for all packages, and never had problems.

I just removed the “./” from the paths, but the error remains the same.

You have one file called SPGBox.jl and one called spgbox.jl. Some filesystems can’t handle this and will overwrite one of the files.

4 Likes

That solved the problem on the Mac run.

On the Windows run the problem was solved by changing the name of Aux.jl to something else, like Vaux.jl.

Any idea why is that?

In addition, in Windows and DOS utilities, some words are also reserved and cannot be used as filenames.[16] For example, DOS device files:[18]

CON, PRN, AUX, CLOCK$, NUL

Probably something to do with that.

3 Likes

Yes, that was it. Thanks.

interesting. That is pretty unlucky you ran into two completely separate filename/filesystem issues

1 Like

This would be a good candidate to add to a linter.