Skip to content

Take format specification history back to Cabal-1.0 #10847

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

Merged
merged 1 commit into from
Apr 8, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
104 changes: 104 additions & 0 deletions doc/file-format-changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -347,4 +347,108 @@ relative to the respective preceding *published* version.
* New :pkg-field:`license` types ``MIT`` and versioned ``GPL`` and ``LGPL``
added.

``cabal-version: ==1.6``
------------------------

* New :pkg-section:`source-repository` stanza for information about the
location of the package's source code within a source code repository.

* Add support for new :pkg-field:`bug-reports` field, to specify the URL where
users should direct bug reports.

* Add support for wildcards in :pkg-field:`data-files` and
:pkg-field:`extra-source-files` fields.

* Add support for ``foo ==1.2.*`` syntax to :pkg-field:`build-depends` field.

* Add support for new :pkg-field:`library:exposed` field (default: ``True``), to
be able to specify that the package should not be exposed.

* :pkg-field:`cpp-options`, :pkg-field:`cc-options` and :pkg-field:`ld-options`
fields no longer use ``,`` as a separator.

``cabal-version: ==1.2.1``
--------------------------

* New format for the :pkg-section:`flag`, :pkg-section:`library` and
:pkg-section:`executable` stanzas.

* Add support for new :pkg-field:`cpp-options` field, to specify options used
when pre-processing Haskell modules.

* Replace ``nhc-options`` field with ``nhc98-options`` field.

``cabal-version: ==1.2.0``
--------------------------

* The :pkg-field:`cabal-version` field is now required.

* New :pkg-section:`flag` stanza for specifying configuration flags and add
support for conditional blocks in :pkg-section:`library` and
:pkg-section:`executable` stanzas.

* Add distinct :pkg-section:`library` stanza.

* New format for :pkg-section:`executable` stanzas.

* Add support for new :pkg-field:`build-type` field (default: ``Custom``), to
specify the type of build used by this package.

* Add support for new :pkg-field:`build-tools` field, to specify tools needed to
build the package.

* Add support for new :pkg-field:`pkgconfig-depends` field, to specify
``pkg-config`` packages needed to build the package.

* Add support for new :pkg-field:`ghc-shared-options` field, to specify
additional options for GHC when the package is built as a shared library.

``cabal-version: ==1.1.6``
--------------------------

* Add support for new :pkg-field:`install-includes` field, distinct from the
:pkg-field:`includes` field, to specify header files from the package.

* Add support for new ``jhc-options`` field, to specify additional options for
John Meacham's Haskell compiler (JHC).

``cabal-version: ==1.1.4``
--------------------------

* Add support for new optional :pkg-field:`cabal-version` field, to specify the
version of ``Cabal`` required for the package.

* Add support for new :pkg-field:`author`, :pkg-field:`homepage`,
:pkg-field:`package-url`, :pkg-field:`synopsis`, :pkg-field:`description` and
:pkg-field:`category` fields.

* Add support for new :pkg-field:`tested-with` field to specify compilers and
versions against which the package has been tested.

* Add support for new :pkg-field:`data-files` field to specify files for use by
the package at run-time.

* Add support for new :pkg-field:`extra-source-files` field to specify files to
be included in source distributions.

* Add support for new :pkg-field:`extra-tmp-files` field to specify files to
be removed when cleaning up.

* Replace :pkg-field:`hs-source-dir` field with :pkg-field:`hs-source-dirs`
field.

* Add support for new :pkg-field:`ghc-prof-options` field, to specify
additional options for GHC when the package is built with profiling.

* Add support for extension fields beginning with ``x-``.

``Cabal-1.0``
-------------

``Cabal-1.0``, released March 2005, came with a
`specification <https://downloads.haskell.org/~cabal/Cabal-1.0/doc/pkg-spec-html/>`__
for 'The Haskell Cabal: A Common Architecture for Building Applications and
Tools', including `Section 5.2 <https://downloads.haskell.org/~cabal/Cabal-1.0/doc/pkg-spec-html/x611.html#SBI-PKG-DESC>`__
'Package description in the simple build infrastructure'.

.. include:: references.inc
Loading