aiidateam / aiida-core

The official repository for the AiiDA code
https://aiida-core.readthedocs.io
Other
431 stars 187 forks source link

Non-unix compatibility #56

Closed aiida-bot closed 7 years ago

aiida-bot commented 11 years ago

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.


aiida-bot commented 10 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)

aiida-bot commented 10 years ago

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:

ltalirz commented 7 years ago

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?

giovannipizzi commented 7 years ago

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).

ltalirz commented 7 years ago

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.

ltalirz commented 7 years ago

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.