-
Notifications
You must be signed in to change notification settings - Fork 701
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
A file that defines a Cabal package should be officially called «Cabal Pact». #8965
Comments
Wouldn't it be more straight-forward to also just call it "manifest" or make ".cabal file" the official term? ^^ |
I've been calling them packages. |
The term "package" is usually the whole bundle of (Haskell) files that you upload to a repository like Hackage. You "define" a package with a file like |
I think that ship has sailed and ".cabal file" is the most used term now |
The official term would be "package description". cabal-file is what everybody calls them. |
in short
in longAll of «package», «package description» and «cabal file» are bland and ambiguous terms. Technically we should agree that a package has a description that is stored in a file that is in some sense related to Cabal, so these names are not altogether wrong. But there are many files that are in some sense related to Cabal — for example, As Andrea pointed out, the official name is in misalignment with the common names — this highlights the issue. I say no one is sure how the file in question should be called. The branding is weak. We see evidence of this weakness even in the comments here. Ship has not sailed because there is no ship. That said, I understand the advantages of bland and ambiguous terms. Weak branding is not going to offend or repel anyone particularly strongly. If we say that Haskell has a stable and pragmatic user base that should be retained rather than expanded, then it is easy to believe that bland and ambiguous terms would serve us better. By this measure, Cabal and Hackage were bad picks as well because of their association with counter-cultures. Perhaps Hackage should have been named «Haskell package repository», Cabal «Haskell package manager», and then we should do well to call a pact a «package manager file». The JavaScript and OCaml communities already go that way with While I acknowledge the danger of picking edgy names like Cabal and Hackage, I think these specific picks were excellent because they associate well with the daring hacker ethos and the promise of secret knowledge that I take to be strengths of Haskell. «Pact» is in line with these post-self-ironic names. We are not really a cabal of hackers, and we know that we are not a cabal of hackers, but at the same time in some sense we are. We are daring hackers in the tame sense of the word and we do have access to special and shared, if not secret, knowledge. This is what makes Haskell different. I find this difference to be worthy of celebration. Of course, without a written brand strategy and actual field research we cannot know which names are better. It is all up to our common sense. Keeping everything the way it has naturally evolved is the safest if boring bet. |
I don't have any strong feelings towards either naming schemes. It should just be documented in a section that can easily be found by the informal name as well (i could like to do that as part of #9214).
Either way is there some authority or process that can give us a decision? |
Pact, while humorous, might be a bit too "weird" for professional use. Imagine people in the office discussing pacts; you might think they were soon to be victims of overwork. That said, I want to name projects and subprojects "Sarcasm", "Rainbows", "Ponies", and "Unicorns", so I don't have a position to criticize. |
Just to be clear. It was not my intention to suport the argument for a new name. Many things have both a official and an informal name. Looking at other ecosystems. What is
It is a project configuration or project file (like the I admit it is not written very prominently in the user guide but it says what it does. The user guide currently says this:
I appreaciate that @kindaro spended thoughts on this but, to be frank, I think marketing is not one of most pressant problems we have.
¯_(ツ)_/¯ |
problem
It is awkward that there is no officially recognized name for files
*.cabal
that define a Cabal package. Some other languages call them «manifest». I too was inclined to call them so, for the lack of a better pick. But the word «manifest» is flat, boring, it names a phenomenon that is only short lived.solution
We have already taken the word «cabal». With a Cabal, one signs a Pact. It also has a fitting connotation of eternal commitment: if you specify version bounds thoroughly, your package will build now and forever, and if you put it to Hackage, you cannot take it back.
With the Haskell Cabal, one Signs a Pact in Blood.
The text was updated successfully, but these errors were encountered: