Closed aiida-bot closed 7 years ago
Original comment by Giovanni Pizzi (Bitbucket: pizzi, GitHub: giovannipizzi):
For the moment, we are not going to support OS different from Linux and Mac OS X (both for AiiDA and the remote computers)
Original comment by Giovanni Pizzi (Bitbucket: pizzi, GitHub: giovannipizzi):
I assign it to Andrea. I thing that the non-unix compatibility of AiiDA will be a 'wontfix' (we will support only linux & mac os x).
However, we should replace all calls of os.path
inside aiida.transport.plugins.ssh
to os.posixpath
if for the moment we only support posix-like servers.
However, if we think that people will want to run on remote machines with weird architectures, we should probably:
_remote_path_module
inside the SshTransport
class, by default this will be os.posixpath
set_remote_path_module
?) to change it to some other module (maybe with checks that is a valid one)aiida.transport.plugins.ssh
module from os.path
to self._remote_path_module
Switching to the conda package manager would make installing AiiDA on Windows significantly simpler.
I have just checked and in terms of dependencies the only package that is not available for Windows (and won't be) is supervisor.
When I search for supervisor
in the AiiDA github repo, I find it only in one important place and that is in the daemon_status.
Can we perhaps get rid of the supervisor
dependency?
Not really, the whole daemon uses supervisor (even if it does not appear as 'import supervisor' - e.g. in setup.py there is a full template to create a supervisor input file).
This does not mean we cannot replace it with something else, but I think that supporting windows should not be at this stage a priority (also because I'm pretty sure there are a few things that will need to be improved, like setting file permissions, using os.path.join properly (I think this is now incorrectly done also for the supercomputers, so running AiiDA on windows might be a problem if the supercomputer is linux, etc.). Probably easy to fix all, but requires to setup a set of tests to test windows. But as claimed above, I would not invest energies at this point on this (of course we can rediscuss).
Ok, I didn't realise that supervisor is more deeply integrated. I would still vote to remove this dependency, if it's not too much work (I am happy to help). This doesn't mean we will support Windows in the near future but at least it makes it possible for someone with enough energy to go through the code, fix the problems and make it work. conda makes it easy to install AiiDA on Windows and, who knows, there might be such a person.
I don't think it would be wise to block Windows because of this single package.
Just for reference: After discussing this issue offline, it was agreed to postpone it until a relevant use case for AiiDA on Windows arises, at which point we are happy to reopen it.
Originally reported by: Giovanni Pizzi (Bitbucket: pizzi, GitHub: giovannipizzi)
I believe that at the moment the only issue that we have is that we use os.path not only for local folders, but also for managing the remote computers (in particular, but probably also in the execmanager and maybe somewhere else). This is ok if both the machine on which we work and the cluster are posix-like.
However, this does not allow AiiDA to work when installed on Windows (for instance). I am pretty sure that this apart from this (and probably the daemon configuration) everything else should work properly in Windows.
Task: replace calls to os.path to os.posixpath (NOT for local files, but for remote files).
Or, EVEN BETTER: define a class-level 'pathmodule' variable, pointing by default to os.posixpath, that gives in the future the possibility to support also remote computers that are not posix-like.