Code Monkey home page Code Monkey logo

opam-coq-archive's Introduction

opam archive for Coq

All opam repositories for Coq packages live here. Packages are organized according to the layout:

  • released: packages for officially released versions of Coq libraries and Coq extensions.

  • core-dev: packages for development versions of Coq.

  • extra-dev: packages for development versions of Coq libraries and Coq extensions.

We welcome pull requests to the released repository adding any Coq-related package that is compatible with a released version of Coq. Besides libraries of general interest, this also includes paper artifacts and other specialized formalizations that are not necessarily expected to be immediately reusable by others.

Usage

To activate the repositories:

  • released (recommended default):

    opam repo add coq-released https://coq.inria.fr/opam/released
    
  • core-dev:

    opam repo add coq-core-dev https://coq.inria.fr/opam/core-dev
    
  • extra-dev:

    opam repo add coq-extra-dev https://coq.inria.fr/opam/extra-dev
    

Adding packages

See the documentation for how to add a package. You can also look at existing pull requests to see how others are adding packages.

Coq Platform

The released opam archive is a key component of the Coq Platform, a distribution of Coq together with a curated set of libraries and plugins. After installing the Platform using scripts (as opposed to via a binary installer), additional packages in the released opam archive can be installed manually without the need for repository activation.

Website and opam metadata

The scripts/archive2web.ml program generates the JSON file coq-packages.json by looking at the opam files.

In particular, it uses the tags field of an opam file as follows:

  1. strings beginning with keyword: are considered as keywords
  2. strings beginning with category: are considered as categories
  3. a string beginning with logpath: is considered the Coq logical path prefix
  4. a string beginning with date: is the date the software was last updated (not the package definition)

Example:

tags: [
  "keyword:cool"
  "keyword:stuff"
  "category:Miscellaneous/Coq Use Examples"
  "logpath:MyPrefix"
  "date:1992-12-22"
]

The homepage:, author:, maintainer:, and doc: fields are also used to generate the package entry.

The JSON file is generated during continuous integration and copied to the website. JavaScript code on the website then loads it to dynamically generate the content of the website on the client side.

See also CEP3 and the deployed website.

Continuous integration

Incoming pull requests are tested on GitLab CI. @coqbot pushes any opened or synchonized pull request to a branch named pr-<number> on GitLab. It will trigger a CI build. If the CI build runs for too long and times out, any member of the Coq organization of GitLab can start it again using the "Run Pipeline" green button at https://gitlab.com/coq/opam-coq-archive/pipelines. This will then build only on runners without pre-set timeouts (the Coq Pyrolyse server). It may still time out if the build takes longer than the GitLab project's timeout setting (24 hours). To skip some packages the first PR message can contain a line such as ci-skip: p1.v1 p2.v2 where p1 and p2 are package names, and v1 and v2 are versions.

opam-coq-archive's People

Contributors

affeldt-aist avatar anton-trunov avatar arthuraa avatar clarus avatar cohencyril avatar damien-pous avatar erikmd avatar fblanqui avatar fpottier avatar gares avatar gmalecha avatar herbelin avatar jasongross avatar jnarboux avatar lasseblaauwbroek avatar liyishuai avatar lysxia avatar mattam82 avatar maximedenes avatar msoegtropimc avatar palmskog avatar pi8027 avatar proux01 avatar ralfjung avatar silene avatar skyskimmer avatar spitters avatar thery avatar ybertot avatar zimmi48 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.