Skip to content
Snippets Groups Projects
  1. Aug 17, 2023
  2. Aug 16, 2023
  3. Aug 15, 2023
  4. Aug 14, 2023
    • Matthew Pickering's avatar
      ci: Fix job metadata generation · 994a9b35
      Matthew Pickering authored and Marge Bot's avatar Marge Bot committed
      994a9b35
    • Matthew Pickering's avatar
      ci: set -e for lint-ci-config scripts · d54b0c1d
      Matthew Pickering authored and Marge Bot's avatar Marge Bot committed
      d54b0c1d
    • Matthew Pickering's avatar
      gen_ci: Rules rework · f9a5563d
      Matthew Pickering authored and Marge Bot's avatar Marge Bot committed
      In particular we now distinguish between whether we are dealing with a
      Nightly/Release pipeline (which labels don't matter for) and a validate
      pipeline where labels do matter.
      
      The overall goal here is to allow a disjunction of labels for validate
      pipelines, for example,
      
      > Run a job if we have the full-ci label or test-primops label
      
      Therefore the "ValidateOnly" rules are treated as a set of disjunctions
      rather than conjunctions like before.
      
      What this means in particular is that if we want to ONLY run a job if a
      label is set, for example, "FreeBSD" label then we have to override the
      whole label set.
      
      Fixes #23772
      f9a5563d
    • Matthew Pickering's avatar
      gen_ci: Rework how jobs-metadata.json is generated · f17b9d62
      Matthew Pickering authored and Marge Bot's avatar Marge Bot committed
      * We now represent a job group a triple of Maybes, which makes it easier
        to work out when jobs are enabled/disabled on certain pipelines.
      
      ```
      data JobGroup a = StandardTriple { v :: Maybe (NamedJob a)
                                       , n :: Maybe (NamedJob a)
                                       , r :: Maybe (NamedJob a) }
      ```
      
      * `jobs-metadata.json`  generation is reworked using the following
        algorithm.
        - For each pipeline type, find all the platforms we are doing builds
          for.
        - Select one build per platform
        - Zip together the results
      
      This way we can choose different pipelines for validate/nightly/release
      which makes the metadata also useful for validate pipelines. This
      feature is used by the test-primops downstream CI in order to select the
      right bindist for testing validate pipelines.
      
      This makes it easier to inspect which jobs are going to be enabled on a
      particular pipeline.
      f17b9d62
    • Matthew Pickering's avatar
      ci: Always run project-version job · e24e44fc
      Matthew Pickering authored and Marge Bot's avatar Marge Bot committed
      This is needed for the downstream test-primops pipeline to workout what
      the version of a bindist produced by a pipeline is.
      e24e44fc
    • Matthew Pickering's avatar
      Add zstd suffix to jobs which rely on zstd · d6130065
      Matthew Pickering authored and Marge Bot's avatar Marge Bot committed
      This was causing some confusion as the job was named simply
      "x86_64-linux-deb10-validate", which implies a standard configuration
      rather than any dependency on libzstd.
      d6130065
    • Bartłomiej Cieślar's avatar
      Report deprecated fields bound by record wildcards when used · 524c60c8
      Bartłomiej Cieślar authored and Marge Bot's avatar Marge Bot committed
      This commit ensures that we emit the appropriate warnings when
      a deprecated record field bound by a record wildcard is used.
      
      For example:
      
          module A where
          data Foo = Foo {x :: Int, y :: Bool, z :: Char}
      
          {-# DEPRECATED x "Don't use x" #-}
          {-# WARNING y "Don't use y" #-}
      
          module B where
          import A
      
          foo (Foo {..}) = x
      
      This will cause us to emit a "Don't use x" warning, with location the
      location of the record wildcard. Note that we don't warn about `y`,
      because it is unused in the RHS of `foo`.
      
      Fixes #23382
      524c60c8
    • Matthew Pickering's avatar
      packaging: Build manpage in separate directory to other documentation · 026f040a
      Matthew Pickering authored and Marge Bot's avatar Marge Bot committed
      We were installing two copies of the manpage:
      
      * One useless one in the `share/doc` folder, because we copy the doc/
        folder into share/
      * The one we deliberately installed into `share/man` etc
      
      The solution is to build the manpage into the `manpage` directory when
      building the bindist, and then just install it separately.
      
      Fixes #23707
      026f040a
Loading