Cabal Logo
latest
  • 1. Getting Started with Haskell and Cabal
    • 1.1. Installing the Haskell toolchain
    • 1.2. Creating a new application
      • 1.2.1. Initializing the application
      • 1.2.2. Running the application
      • 1.2.3. Adding dependencies
    • 1.3. Run a single-file Haskell script
    • 1.4. What Next?
  • 2. Introduction
    • 2.1. A tool for working with packages
    • 2.2. What’s in a package
    • 2.3. Cabal featureset
    • 2.4. Similar systems
  • 3. Package Concepts and Development
    • 3.1. Quickstart
      • 3.1.1. Introduction
      • 3.1.2. Using cabal init
      • 3.1.3. Running the program
      • 3.1.4. About the Cabal package structure
      • 3.1.5. Editing the .cabal file
      • 3.1.6. Modules included in the package
      • 3.1.7. Modules imported from other packages
      • 3.1.8. Building the package
      • 3.1.9. Next steps
    • 3.2. Package concepts
      • 3.2.1. The point of packages
      • 3.2.2. Package names and versions
      • 3.2.3. Kinds of package: Cabal vs GHC vs system
      • 3.2.4. Unit of distribution
      • 3.2.5. Explicit dependencies and automatic package management
      • 3.2.6. Portability
  • 4. Nix-style Local Builds
    • 4.1. Quickstart
      • 4.1.1. Developing multiple packages
    • 4.2. Cookbook
      • 4.2.1. How can I profile my library/application?
      • 4.2.2. How can I have a reproducible set of versions for my dependencies?
    • 4.3. How it works
      • 4.3.1. Local versus external packages
      • 4.3.2. Where are my build products?
      • 4.3.3. Caching
  • 5. cabal-install Configuration and Commands
    • 5.1. Configuration
      • 5.1.1. Overview
      • 5.1.2. Environment variables
        • 5.1.2.1. Configuration file discovery
      • 5.1.3. Directories
      • 5.1.4. Repository specification
        • 5.1.4.1. Using secure repositories
        • 5.1.4.2. Local no-index repositories
        • 5.1.4.3. Legacy repositories
        • 5.1.4.4. Secure local repositories
    • 5.2. Commands
      • 5.2.1. Common Arguments and Flags
      • 5.2.2. Target Forms
      • 5.2.3. Global commands
        • 5.2.3.1. cabal user-config
      • 5.2.4. Package database commands
        • 5.2.4.1. cabal update
        • 5.2.4.2. cabal list
        • 5.2.4.3. cabal info
      • 5.2.5. Initialization and download
        • 5.2.5.1. cabal init
        • 5.2.5.2. cabal fetch
        • 5.2.5.3. cabal get
      • 5.2.6. Project configuration
        • 5.2.6.1. cabal configure
        • 5.2.6.2. cabal freeze
        • 5.2.6.3. cabal gen-bounds
        • 5.2.6.4. cabal outdated
      • 5.2.7. Project building and installing
        • 5.2.7.1. cabal build
        • 5.2.7.2. cabal install
        • 5.2.7.3. cabal haddock
        • 5.2.7.4. cabal haddock-project
        • 5.2.7.5. cabal clean
      • 5.2.8. Running and testing
        • 5.2.8.1. cabal list-bin
        • 5.2.8.2. cabal repl
        • 5.2.8.3. cabal run
        • 5.2.8.4. cabal bench
        • 5.2.8.5. cabal test
        • 5.2.8.6. cabal exec
      • 5.2.9. Sanity checks and shipping
        • 5.2.9.1. cabal check
        • 5.2.9.2. cabal sdist
        • 5.2.9.3. cabal upload
        • 5.2.9.4. cabal report
  • 6. Package Description
    • 6.1. Creating a package
      • 6.1.1. Example: A package containing a simple library
      • 6.1.2. Example: A package containing executable programs
      • 6.1.3. Example: A package containing a library and executable programs
    • 6.2. Package descriptions
      • 6.2.1. Modules and preprocessors
      • 6.2.2. Package properties
      • 6.2.3. Library
      • 6.2.4. Opening an interpreter session
      • 6.2.5. Freezing dependency versions
      • 6.2.6. Generating dependency version bounds
      • 6.2.7. Listing outdated dependency version bounds
      • 6.2.8. Executables
        • 6.2.8.1. Running executables
      • 6.2.9. Test suites
        • 6.2.9.1. Example: Package using exitcode-stdio-1.0 interface
        • 6.2.9.2. Example: Package using detailed-0.9 interface
        • 6.2.9.3. Running test suites
      • 6.2.10. Benchmarks
        • 6.2.10.1. Example:
        • 6.2.10.2. Running benchmarks
      • 6.2.11. Foreign libraries
      • 6.2.12. Build information
      • 6.2.13. Configurations
        • 6.2.13.1. Example: A package containing a library and executable programs
        • 6.2.13.2. Layout
        • 6.2.13.3. Example: Using explicit braces rather than indentation for layout
        • 6.2.13.4. Configuration Flags
      • 6.2.14. Conditional Blocks
        • 6.2.14.1. Conditions
        • 6.2.14.2. Resolution of Conditions and Flags
      • 6.2.15. Meaning of field values when using conditionals
      • 6.2.16. Common stanzas
      • 6.2.17. Source Repositories
      • 6.2.18. Downloading a package’s source
    • 6.3. Custom setup scripts
      • 6.3.1. Backward compatibility and custom-setup
    • 6.4. Autogenerated modules and includes
    • 6.5. Virtual modules
    • 6.6. Accessing data files from package code
      • 6.6.1. Accessing the package version
      • 6.6.2. Accessing package-related informations
    • 6.7. System-dependent parameters
      • 6.7.1. Example: Using autoconf
    • 6.8. Conditional compilation
    • 6.9. More complex packages
    • 6.10. Backpack
  • 7. cabal.project Reference
    • 7.1. Conditionals and imports
    • 7.2. Specifying the local packages
      • 7.2.1. Specifying Packages from Remote Version Control Locations
    • 7.3. Global configuration options
    • 7.4. Phase control
    • 7.5. Solver configuration options
    • 7.6. Package configuration options
      • 7.6.1. Object code options
      • 7.6.2. Executable options
      • 7.6.3. Dynamic linking options
      • 7.6.4. Static linking options
      • 7.6.5. Foreign function interface options
      • 7.6.6. Profiling options
      • 7.6.7. Coverage options
      • 7.6.8. Haddock options
    • 7.7. Advanced global configuration options
      • 7.7.1. Advanced solver options
  • 8. Setup.hs Commands
    • 8.1. Building and installing a system package
    • 8.2. Creating a binary package
    • 8.3. runhaskell Setup.hs configure
      • 8.3.1. Programs used for building
      • 8.3.2. Installation paths
        • 8.3.2.1. Path variables in the simple build system
        • 8.3.2.2. Paths in the simple build system
        • 8.3.2.3. Prefix independence
      • 8.3.3. Controlling Flag Assignments
      • 8.3.4. Building Test Suites
      • 8.3.5. Miscellaneous options
    • 8.4. runhaskell Setup.hs build
    • 8.5. runhaskell Setup.hs haddock
    • 8.6. runhaskell Setup.hs hscolour
    • 8.7. runhaskell Setup.hs install
    • 8.8. runhaskell Setup.hs copy
    • 8.9. runhaskell Setup.hs register
    • 8.10. runhaskell Setup.hs unregister
    • 8.11. runhaskell Setup.hs clean
    • 8.12. runhaskell Setup.hs test
    • 8.13. runhaskell Setup.hs bench
    • 8.14. runhaskell Setup.hs sdist
  • 9. Package Description Format Specification History
    • 9.1. cabal-version: 3.8
    • 9.2. cabal-version: 3.6
    • 9.3. cabal-version: 3.4
    • 9.4. cabal-version: 3.0
    • 9.5. cabal-version: 2.4
    • 9.6. cabal-version: 2.2
    • 9.7. cabal-version: 2.0
    • 9.8. cabal-version: 1.24
    • 9.9. cabal-version: 1.22
    • 9.10. cabal-version: 1.20
    • 9.11. cabal-version: 1.18
    • 9.12. cabal-version: 1.16
    • 9.13. cabal-version: 1.12
  • 10. Field Syntax Reference
    • 10.1. Notation
    • 10.2. Lists
    • 10.3. Non-terminals
    • 10.4. Build info fields
    • 10.5. Library fields
    • 10.6. Package description fields
    • 10.7. Test-suite fields
  • 11. Reporting Bugs and Stability of Cabal Interfaces
    • 11.1. Reporting bugs and deficiencies
    • 11.2. Stability of Cabal interfaces
      • 11.2.1. Cabal file format
      • 11.2.2. Command-line interface
        • 11.2.2.1. Very Stable Command-line interfaces
        • 11.2.2.2. Stable Command-line interfaces
        • 11.2.2.3. Unstable command-line
      • 11.2.3. Functions and Types
        • 11.2.3.1. Very Stable API
        • 11.2.3.2. Semi-stable API
        • 11.2.3.3. Unstable API
      • 11.2.4. Hackage
  • 12. Nix Integration
    • 12.1. Enabling Nix Integration
    • 12.2. Creating Nix Expressions
    • 12.3. Nix Expression Evaluation
    • 12.4. Further Reading
Reference Index
Cabal
  • »
  • 11. Reporting Bugs and Stability of Cabal Interfaces
  • Edit on GitHub

11. Reporting Bugs and Stability of Cabal Interfaces

  • 11.1. Reporting bugs and deficiencies
  • 11.2. Stability of Cabal interfaces
    • 11.2.1. Cabal file format
    • 11.2.2. Command-line interface
      • 11.2.2.1. Very Stable Command-line interfaces
      • 11.2.2.2. Stable Command-line interfaces
      • 11.2.2.3. Unstable command-line
    • 11.2.3. Functions and Types
      • 11.2.3.1. Very Stable API
      • 11.2.3.2. Semi-stable API
      • 11.2.3.3. Unstable API
    • 11.2.4. Hackage
Previous Next

© Copyright 2003-2022, Cabal Team. Revision 14727bcb.

Built with Sphinx using a theme provided by Read the Docs.
Read the Docs v: latest
Versions
latest
stable
3.8
3.6
3.4
3.2
3.0
2.4
2.0
Downloads
On Read the Docs
Project Home
Builds