-
Notifications
You must be signed in to change notification settings - Fork 16
harmonise names of package dirs in pkg/ #8
Comments
Just to explain where these names come from - we use exactly the name of directory with the package provided by package authors in the package archive. Even though there is a way to get the name of the package directory with |
Well, so someone long time ago was not careful enough to ensure this uniformity. Hardcoded names can be fixed, it's not much effort. |
Please explain what advantage this would have, resp. which problem with it you perceive - for now, this sounds to me like a mere question of aesthetics. |
e.g. scripts parsing names of packages can be kept cleaner, and we have such scripts in Sage... |
Apart from ease of automated handling and aesthetics (unless you want to intentionally create an impression that GAP is sloppy :-)), another reason is preserving packagers' sanity... |
In the https://github.com/gap-system/GapWWW/blob/master/Download/InstPackages.sh, I am using The other script https://github.com/gap-system/gap-distribution/blob/master/wininst/wininst.g to generate input for NSIS to build GAP installer for Windows uses We may have a recommended naming convention for package directories, but I see no reasons to strongly impose it. |
by the way, how do you handle package dependencies? If blah depends on foo, must blah use the version of foo, too? Or not? |
@dimpase of course - https://github.com/gap-packages/example/blob/master/PackageInfo.g has component called The only thing missing in this model is that the version should be at least N - you can not specify e.g. "any version between A and H except version D". More on package dependencies here: http://www.gap-system.org/Manuals/pkg/example/doc/chapA.html#X7FB5FECD7C271688 |
if you have all the version info stored elsewhere, what's the point of foo-1.2.3/ ? No, really? |
@dimpase : There is no 'point' to foo-1.2.3, on the other hand, there is no reason to restrict packager's choice of directory. Also, you can install multiple versions of the same package, and GAP will load (usually) the most recent one. I take advantage of this, by having (for example) semigroups, and then semigroups-dev in a separate package directory which I can choose to enable/disable. |
I still don't understand how this makes the life of a packager harder, let alone how it could drive somebody to insanity: Using a regex While my sense of aesthetics is also not happy about this situation, my sense of practically tells me that this is one of the less (least?) important "issues". |
@dimpase wrote:
No, it is the other way round. Many years ago these directories had to be named uniformly by the lower case version of the package name, in fact this determined implicitly the package name. When all meta information about a package was moved into and collected in the In the current list of redistributed packages I can see no abuse of this freedom. In all cases it is clear to which package a directory belongs. As a side effect of this improved flexibility it became possible to install several versions of a package in the same directory (convenient for package developers and users of dev-versions). |
@ChrisJefferson, @frankluebeck thanks - I was going to add the same point about keeping several versions of the same package. I suggest that we may close this issue. |
I'm sorry, I don't get it. Does GAP as a distribution (we are in gap-distribution discussion!) support Are there GAP commands to support loading an explicit version of a package? A casual look at the current pkg/ sets one thinking like: "hmm, some On 20 January 2016 at 10:05, Alexander Konovalov notifications@github.com
|
@dimpase wrote:
support: yes, distribute at the same time: no.
Of course, yes. Please read the help section on
Indeed, you don't get it. The directory name is not the place to find out a package name or version number. All packages have versions. Consult the |
On 20 January 2016 at 11:03, frankluebeck notifications@github.com wrote:
Well, I didn't know that, but then the common sense would be to always E.g. what is the relationship between names of package directories and If you really want to allow freedom on the naming, you have to document it |
As there were questions about the point of enforcing the directory names, e.g. by @fingolfin , let me Emulating by plain text files things that are best encoded by the filesystem is certainly bad design, and it simply did not cross my mind that this design has been chosen... |
@dimpase wrote:
There is an open pull request gap-system/gap#484 with the guidance to package authors - you may leave a comment in the code there suggesting formulations of recommendations to package authors regarding the choice of the directory name for the package. We may explain that including version numbers in the packages' paths is preferable and explain why, but say that this is not mandatory. This is perhaps the only practical outcome of this issue. |
I will close this issue - we use names of the directories chosen by authors "as is". If you'd like to add a couple of sentences to the guidance to package authors, telling them what you consider to be a good practice, please leave them under gap-system/gap#484 |
I am asking for introducing a formal naming rule, and you tell me about good practice etc etc. |
We have asked you to provide arguments why this should be done, and you failed to deliver. Instead, you bring up claims that are simply false, and indicate that you did not even bother to read the documentation. Hence, we rejected your request for a formal naming rule, because you failed to provide any actual evidence that there is a need for this. |
Actual evidence is in ease of creating, extending, and maintaining GAP packages to be distributed with Sage. And another piece is OpenDreamKit/OpenDreamKit#51 - IMHO one has to deliver something promised there, but we cannot even agree on the directory structure and the need to eliminate crap from directories, I don't feel like continuing this. |
currently most are named like
while the rest are named
Do either way, but do not mix them.
The text was updated successfully, but these errors were encountered: