Skip to content
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

Cabal User Guide §1.2.9.1 has not kept pace with Cabal 1.8.0.2 #10819

Open
mpilgrem opened this issue Mar 8, 2025 · 2 comments
Open

Cabal User Guide §1.2.9.1 has not kept pace with Cabal 1.8.0.2 #10819

mpilgrem opened this issue Mar 8, 2025 · 2 comments
Assignees

Comments

@mpilgrem
Copy link
Collaborator

mpilgrem commented Mar 8, 2025

Cabal 1.8.0.2 (published December 2009) introduced:

  • Allow executables to depend on the lib within the same package

and, nowadays, most packages where that is applicable take it up.

@geekosaur has noticed, in the Cabal and Hackage Matrix room, that the example in §1.2.9.1 of the latest Cabal User Guide has not kept pace with that.

I'll raise a pull request to fix that. I plan to do that in two steps:

  1. take the documentation of the Cabal package description format specification history back from its current cabal-version: 1.12 to cabal-version: ==1.8; and
  2. put through any other changes that ensure that the development is reflected fully in the current guide.
@mpilgrem mpilgrem self-assigned this Mar 8, 2025
@mpilgrem mpilgrem changed the title Cabal User Guide 1.2.9.1 has not kept pace with Cabal 1.8.0.2 Cabal User Guide §1.2.9.1 has not kept pace with Cabal 1.8.0.2 Mar 8, 2025
@ulysses4ever
Copy link
Collaborator

I agree that the example should be modernized as discussed.

I don't think it's a good idea to put things like cabal-version: 1.12 or 1.8 in today's Cabal manual because people (esp. novices) may run into all sorts of troubles with ancient formats not supporting features that are common nowadays (like common stanzas, for instance!). Also, 1.8 isn't valid, I think: before 1.12 you ought to say >=1.8, etc.

@mpilgrem
Copy link
Collaborator Author

mpilgrem commented Mar 8, 2025

@ulysses4ever, in a sense your comment makes my point: your observation about cabal-version: >= 1.8 is supported by referring to the current stable documentation of the changes to the specification introduced with cabal-version: 1.12 at https://cabal.readthedocs.io/en/stable/file-format-changelog.html#cabal-version-1-12.

Similarly, a question asked by @geekosaur in the Matrix room would have been answered, in part, by reference to the changes to the specification introduced with cabal-version: ==1.8 - if only the history went back that far. (The current 'to do' under cabal-version: 1.16 in the history suggests to me that the reason the history 'stops short' may be because the necessary research has not yet been performed.)

EDIT: I hope you will see from the associated pull request (now raised) that the changes that I propose to the documentation of the specification history are relatively conservative.

mpilgrem added a commit that referenced this issue Mar 8, 2025
Also corrects when `default-extensions`, `other-extensions`, `default-language` and `other-languages` were, in fact, first introduced.

Also supplies missing ('TBW') documentation for `other-languages`.

Sources for changes:
* Change logs;
* Other documentation provided with released Cabal versions; and
* source code for published Cabal versions, including Haddock documentation and other code documentation.
mpilgrem added a commit that referenced this issue Mar 8, 2025
Also corrects when `default-extensions`, `other-extensions`, `default-language` and `other-languages` were, in fact, first introduced.

Also supplies missing ('TBW') documentation for `other-languages`.

Sources for changes:
* Change logs;
* Other documentation provided with released Cabal versions; and
* source code for published Cabal versions, including Haddock documentation and other code documentation.
mpilgrem added a commit that referenced this issue Mar 8, 2025
Also corrects when `default-extensions`, `other-extensions`, `default-language` and `other-languages` were, in fact, first introduced.

Also supplies missing ('TBW') documentation for `other-languages`.

The introduction of the `exitcode-stdio-1.0` value is documented because this is needed to make sense of the changes that occurred in `cabal-version: 1.14` (see #10822).

Sources for changes:
* Change logs;
* Other documentation provided with released Cabal versions; and
* source code for published Cabal versions, including Haddock documentation and other code documentation.
mpilgrem added a commit that referenced this issue Mar 8, 2025
…e package

Also updates example in section 1.2.9.1 of the Cabal User Guide, accordingly.

Also fixes grammatical typo in section 1.2.9.1.
mpilgrem added a commit that referenced this issue Mar 8, 2025
Also corrects when `default-extensions`, `other-extensions`, `default-language` and `other-languages` were, in fact, first introduced.

Also supplies missing ('TBW') documentation for `other-languages`.

The introduction of the `exitcode-stdio-1.0` value is documented because this is needed to make sense of the changes that occurred in `cabal-version: 1.14` (see #10822).

Sources for changes:
* Change logs;
* Other documentation provided with released Cabal versions; and
* source code for published Cabal versions, including Haddock documentation and other code documentation.
mpilgrem added a commit that referenced this issue Mar 11, 2025
Also corrects when `default-extensions`, `other-extensions`, `default-language` and `other-languages` were, in fact, first introduced.

Also supplies missing ('TBW') documentation for `other-languages`.

The introduction of the `exitcode-stdio-1.0` value is documented because this is needed to make sense of the changes that occurred in `cabal-version: 1.14` (see #10822).

Sources for changes:
* Change logs;
* Other documentation provided with released Cabal versions; and
* source code for published Cabal versions, including Haddock documentation and other code documentation.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants