Closed komiga closed 13 years ago
To prevent overwriting SCM managed directories, what about letting Maximus add a file inside the module directory it installs. If it wants to update a module and the file exists it can simply do so, otherwise it can warn the user that it wants to update a module but that it's not managed by Maximus and if the user wants Maximus to manage it he/she should delete those modules first.
Maximus has to track module versions for updating installed modules, so this should work out nicely. We'll have .maximus
file or somesuch in each module folder that Maximus installs. You'll also have to make sure that file is ignored in maximus-web once Maximus starts using it.
How about naming it meta.maximus
? We could store version number in there as well, which will be set when installing the module. That way we don't have to parse module files in the client, should be much faster as well. It can simply be some kind of INI file, or whatever format it is you use in duct.
Perhaps add a warning in the file as well that if they delete it Maximus can no longer track/manage it?
If we settle on the name I'll add it to the exclude list.
How about naming it
meta.maximus
?
That is fine.
We could store version number in there as well, which will be set when installing the module.
That is what I was aiming for.
Cool. I'll be adding meta.maximus
to the exclude list then.
The website now excludes meta.maximus
from its archives.
It would also be nice if when you want to install a module that's already manually installed, it would still ask you to install its dependencies. On a fresh install I'd could then just do maximus install htbaapub.rest
and it would install it's dependencies, even though I already have htbaapub.rest
manually installed.
This would simply save a little bit of time and is more of a convenience than a necessity.
Looks like the current code that parses and compare module versions only accepts version in the format of 1.01
and not 1.0.1
. Should change this. Basically 1.0.1
translates to 1.000001
so comparisons should be straight forward.
Version comparison should also be removed from mxModuleVersion
to a mxModuleVersionObject
type because it's needed for doing comparisons with metafiles.
@komiga Sorry to bother you on this, but were you planning on using mxInstallImpl.CheckVersions
to see if the module to install is being managed by Maximus or not?
I don't recall, but I'd guess that it is for that purpose.
Done!
Versions need to be checked when updating or installing modules.
If a group of modules are controlled by VCS, the user needs to be warned before continuing. If a group of modules are already at a newer version than the ones to be installed, the user needs to be warned.