Skip to content
Snippets Groups Projects
  • Phil de Joux's avatar
    d5dfd6e0
    source-repository versus source-repository-package · d5dfd6e0
    Phil de Joux authored
    
    - Adds pijul as type
    - explicit dot is the same as root
    - Update doc/cabal-package-description-file.rst
    - Grammar, comma required for non-restrictive clause
    - Move warning down the section
    - Move repository stuff to its own page
    - Add author and consumer subsections
    - Keep consistent ordering
    - Put source-repository before source-repository-package
    - Reword intro and add hackage linking
    - A field of this type is always optional
    - Fix typo
    - Put the table into the field types section
    - Link to VCS kind, consistent casing
    - Introduce the VCS acronym early
    - Link to cabal get for this|head
    - Update doc/cabal-package-description-file.rst
    - Comma after as an example
    - Update doc/cabal-package-description-file.rst
    - There are two kinds comma
    - Split sentences.
    - Move to how to section
    - Add version control fields
    - Rewrite package consumer section
    - Bump source packages up a level
    - Rename as "how to source packages"
    - Rename section, "package source"
    - Fix whitespace
    - Mention manual download before cabal download
    - Use a description list for source-repository fields
    - Add a warning about the confusing field names
    - Clarify *source code* ``.tar.gz`` archive
    - Use Git uppercase
    - Source Marker section, marks out
    - Change to "inside a single VCS repository"
    - Taking a Dependency from a Source Code Repository
    - Lead with uppercase first letter for Darcs, Git
    - Fix whitespace
    - Use lowercase for titles
    - Change the guide title to "How to get package *source code*".
    - Hackage is for published, exact versus range of versions
    - Mention cabal get
    - Lead with uppercase for Cabal and Hackage
    - Move VCS fields up in the tree
    - Mention *source code* in all the section titles
    - Explain how linking helps contributors and maintainers
    - Add an example of conversion
    - Add a dependency vendoring section
    - Show cloning with cabal build --dry-run
    - Keep VCS fields small
    - Add diagrams
    - Warn about hash in clone folder name
    - Use code style for .cabal
    - Use lower caps in title to match other sections
    - Add missing _ for external link reference
    - Move package authoring section to last
    - Use subsections for vendoring
    - Add a section about publishing
    - Fix up anchors and references
    - Typo, "extracts it to a directory"
    - It is a "``cabal get`` unpacking step"
    - Use a comma in "Fork, don't vendor"
    - Add a tag to the src-repo-pkg example
    - The warning about commits is only for Git repositories
    - Move note to setting up section
    - Fix whitespace
    - Missing source-repository ead in the diff
    - Use with/without a "-package" suffix ... belongs
    - Add a reference to cabal get
    - How to locate and get
    - Add back the ref to the package consumer section
    - Replace arrowheads with ASCII
    - Replace ticked checkboxes with ASCII
    - Warn about project and the set of pkgs separately
    - Multiple dependency packages not multiple dependencies
    - Shorter explanation of vendoring
    - Lower caps for bold terms
    - Add references to VCS fields
    - A marker that points to
    - Use the shorter "shepherd"
    - Use grab (not obtain) before obtaining
    - Clarify terms in source code note
    - Hackage is only for published package dependencies
    - Add a link to hackage upload
    - Add a footnote about packages of a cabal.project
    - Revert section title to "Specifying the local packages"
    - Change shepherd to "deal with"
    - Put source after package, ordering how to guides
    - Comma after as
    
    Co-Authored-By: default avatarArtem Pelenitsyn <a.pelenitsyn@gmail.com>
    Co-Authored-By: Brandon S. Allbery's avatarbrandon s allbery kf8nh <allbery.b@gmail.com>
    source-repository versus source-repository-package
    Phil de Joux authored
    
    - Adds pijul as type
    - explicit dot is the same as root
    - Update doc/cabal-package-description-file.rst
    - Grammar, comma required for non-restrictive clause
    - Move warning down the section
    - Move repository stuff to its own page
    - Add author and consumer subsections
    - Keep consistent ordering
    - Put source-repository before source-repository-package
    - Reword intro and add hackage linking
    - A field of this type is always optional
    - Fix typo
    - Put the table into the field types section
    - Link to VCS kind, consistent casing
    - Introduce the VCS acronym early
    - Link to cabal get for this|head
    - Update doc/cabal-package-description-file.rst
    - Comma after as an example
    - Update doc/cabal-package-description-file.rst
    - There are two kinds comma
    - Split sentences.
    - Move to how to section
    - Add version control fields
    - Rewrite package consumer section
    - Bump source packages up a level
    - Rename as "how to source packages"
    - Rename section, "package source"
    - Fix whitespace
    - Mention manual download before cabal download
    - Use a description list for source-repository fields
    - Add a warning about the confusing field names
    - Clarify *source code* ``.tar.gz`` archive
    - Use Git uppercase
    - Source Marker section, marks out
    - Change to "inside a single VCS repository"
    - Taking a Dependency from a Source Code Repository
    - Lead with uppercase first letter for Darcs, Git
    - Fix whitespace
    - Use lowercase for titles
    - Change the guide title to "How to get package *source code*".
    - Hackage is for published, exact versus range of versions
    - Mention cabal get
    - Lead with uppercase for Cabal and Hackage
    - Move VCS fields up in the tree
    - Mention *source code* in all the section titles
    - Explain how linking helps contributors and maintainers
    - Add an example of conversion
    - Add a dependency vendoring section
    - Show cloning with cabal build --dry-run
    - Keep VCS fields small
    - Add diagrams
    - Warn about hash in clone folder name
    - Use code style for .cabal
    - Use lower caps in title to match other sections
    - Add missing _ for external link reference
    - Move package authoring section to last
    - Use subsections for vendoring
    - Add a section about publishing
    - Fix up anchors and references
    - Typo, "extracts it to a directory"
    - It is a "``cabal get`` unpacking step"
    - Use a comma in "Fork, don't vendor"
    - Add a tag to the src-repo-pkg example
    - The warning about commits is only for Git repositories
    - Move note to setting up section
    - Fix whitespace
    - Missing source-repository ead in the diff
    - Use with/without a "-package" suffix ... belongs
    - Add a reference to cabal get
    - How to locate and get
    - Add back the ref to the package consumer section
    - Replace arrowheads with ASCII
    - Replace ticked checkboxes with ASCII
    - Warn about project and the set of pkgs separately
    - Multiple dependency packages not multiple dependencies
    - Shorter explanation of vendoring
    - Lower caps for bold terms
    - Add references to VCS fields
    - A marker that points to
    - Use the shorter "shepherd"
    - Use grab (not obtain) before obtaining
    - Clarify terms in source code note
    - Hackage is only for published package dependencies
    - Add a link to hackage upload
    - Add a footnote about packages of a cabal.project
    - Revert section title to "Specifying the local packages"
    - Change shepherd to "deal with"
    - Put source after package, ordering how to guides
    - Comma after as
    
    Co-Authored-By: default avatarArtem Pelenitsyn <a.pelenitsyn@gmail.com>
    Co-Authored-By: Brandon S. Allbery's avatarbrandon s allbery kf8nh <allbery.b@gmail.com>
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
version-control-fields.rst 2.39 KiB

Version Control System Fields
=============================

.. _vcs-fields:

Most of the version control system (VCS) fields types are common to both
``source-repository`` and ``source-repository-package`` stanzas.

.. list-table::
:header-rows: 1
:widths: 30 30 40

* - Field Name
- source-repository (head|this)
- source-repository-package
* - type
- [x]
- [x]
* - location
- [x]
- [x]
* - branch
- [x]
- [x]
* - tag
- [x]
- [x]
* - subdir
- [x] (0 or 1)
- [x] (0 or 1 for each dependency)
* - module (CVS only)
- [x]
- [_]
* - post-checkout-command
- [_]
- [x]

.. _vcs-kind:

VCS kind
^^^^^^^^

Cabal supports specifying different information for various common source
control systems. This is the name of the source control system used for a
repository. The currently recognised types are:

- ``darcs``
- ``git``
- ``svn``
- ``cvs``
- ``mercurial`` (or alias ``hg``)
- ``bazaar`` (or alias ``bzr``)
- ``arch``
- ``monotone``
- ``pijul``

The VCS kind will determine what other fields are appropriate to specify for a
particular version control system.

VCS location
^^^^^^^^^^^^

The location of the repository, usually a URL but the exact form of this field
depends on the repository type. For example:

- for Darcs: ``http://code.haskell.org/foo/``
- for Git: ``git://github.com/foo/bar.git``
- for CVS: ``anoncvs@cvs.foo.org:/cvs``

VCS branch
^^^^^^^^^^

Many source control systems support the notion of a branch, as a distinct
concept from having repositories in separate locations. For example CVS, SVN and
git use branches while darcs uses different locations for different branches. If
you need to specify a branch to identify a your repository then specify it in
this field.

VCS tag
^^^^^^^

A tag identifies a particular state of a source repository. The exact form of
the tag depends on the repository type.

VCS subdirectory
^^^^^^^^^^^^^^^^

A field of this type is always optional because it defaults to empty, which
corresponds to the root directory of the repository and is the same as
specifying ``.`` explicitly.

Some projects put the sources for multiple packages inside a single VCS
repository. This field lets you specify the relative path from the root of the
repository to the top directory for the package, i.e. the directory containing
the package's ``.cabal`` file.