FAQ | This is a LIVE service | Changelog

Skip to content
Snippets Groups Projects
  1. Dec 13, 2024
  2. Dec 09, 2024
  3. Dec 05, 2024
  4. Dec 04, 2024
    • Dr Rich Wareham's avatar
      feat: add some basic documentation · 17e6c7dd
      Dr Rich Wareham authored
      The common CI pipeline has support for mkdocs-based documentation and so
      add a basic generated mkdocs config. Base the mkdocs config on the
      config which is likely to land in the copier template to minimise future
      disruption.
      
      We need to override some parts of the standard jobs to "inject" the
      documentation generated by the OpenAPI templates into them. We also need
      to add "fake" index.html files which take the place of the real
      documentation which will be injected in.
      17e6c7dd
    • Dr Rich Wareham's avatar
    • Dr Rich Wareham's avatar
      feat: publish OpenAPI clients to GitLab's package registry · a3ddcf2f
      Dr Rich Wareham authored
      Add jobs which publish generated OpenAPI clients to GitLab's own package
      registry. In time we may add ones which publish directly to npm and/or
      PyPI but for the moment keep things simple.
      
      Packages are only published if the git ref name matches a specific
      value. By default it is the default branch but it can be customised for
      advanced users.
      a3ddcf2f
    • Dr Rich Wareham's avatar
      feat: add generated documentation for OpanAPI clients · ccd693d9
      Dr Rich Wareham authored
      Generate documentation for each of the OpenAPI clients along with
      redoc-based documentation for the schema itself. Downstream projects
      should arrange to copy this documentation to some appropriate place.
      
      We add generic "document a TypeScript project" and "document a Python
      project" jobs along with specialisations for each of the clients we
      generate.
      
      All documentation ends up in `OPENAPI_GENERATOR_DOCS_ARTIFACT_DIR` which
      can be overridden by consuming projects.
      ccd693d9
    • Dr Rich Wareham's avatar
      feat: generate and package OpenAPI clients · 09825b18
      Dr Rich Wareham authored
      Use the openapi-generator CLI to generate and package a TypeScript
      client using axios for HTTP transport and a Python package using urllib3
      for transport. The version numbers of the generated packages match the
      version number of the generated OpenAPI schema.
      
      As the OpenAPI generator is intended to be generic, we configure a
      reasonable set of defaults for generated artefact names, etc. Show how
      these can be customised in local configuration to specify alternate
      locations for schema files and source packages to be added as release
      assets. Add the generated API clients as release assets.
      
      The list of generated clients is supposed to be slightly opaque to the
      consuming project so that we may add additional clients over time.
      Should that prove troublesome, each client may be explicitly disabled by
      setting a generator-specific `..._DISABLED` variable.
      
      The package name is generated from the GitLab project name but can be
      overridden. We do so in our case since the project name ("api") is a
      little under-descriptive.
      
      As with generation, we support per-client overriding of the package name
      which we demonstrate with the Python package.
      09825b18
    • Dr Rich Wareham's avatar
      feat: only trigger API client generation if schema changes · fa97e7f7
      Dr Rich Wareham authored
      If the schema hasn't changed, not only is it not worth re-generating
      clients but we also won't be able to publish clients using the default
      strategy of extracting the version from the schema. (Both PyPI and npm
      disallow re-uploading packages with the same version number.)
      fa97e7f7
    • Dr Rich Wareham's avatar
    • Dr Rich Wareham's avatar
      fix(pre-commit): update flake8 · f7348119
      Dr Rich Wareham authored
      The flake8 pre-commit checker was moaning about some files due to not
      understanding modern f-string idiom. Update it.
      f7348119
    • Dr Rich Wareham's avatar
      fix: correct various documentation warts · 470c48b5
      Dr Rich Wareham authored
      There was no LICENSE file present and some of the docstrings either did
      not match the annotated return types or were otherwise malformed. Fix
      these small warts.
      470c48b5
    • Dr Rich Wareham's avatar
  5. Dec 03, 2024
  6. Dec 02, 2024
  7. Nov 28, 2024
    • E. Evstafiev's avatar
      Merge branch 'release-it--main' into 'main' · bae3eabf
      E. Evstafiev authored
      chore(release): 0.8.0
      
      See merge request !57
      0.8.0
      bae3eabf
    • activate-account-bot's avatar
      chore(release): 0.8.0 · d1d55d0a
      activate-account-bot authored
      d1d55d0a
    • Dr Rich Wareham's avatar
      Merge branch 'issue-24-schema-generation' into 'main' · 509f04ef
      Dr Rich Wareham authored
      feat: add the bones of an OpenAPI client generation mechanism
      
      Closes #24
      
      See merge request !56
      509f04ef
    • Dr Rich Wareham's avatar
      feat: add the bones of an OpenAPI client generation mechanism · 929894f5
      Dr Rich Wareham authored
      Add the start of a re-usable OpenAPI client generation mechanism. Add
      two files: one which represents the repository-local customisation and
      one which is the re-usable template. Add the start of some documentation
      for the template with an eye to moving it to the guidebook.
      
      The general idea is that getting OpenAPI clients *should* be as simple
      as including an `openapi.yaml` file in the root of the repository. (Note
      the name of the file was chosen because GitLab will automatically render
      files so-named with swagger UI.)
      
      For our specific use case we want to generate the schema dynamically and
      so allow for this by means of customising an "openapi:schema" job whose
      role is to ensure the schema is available to downstream jobs as a CI job
      artefact. The default behaviour is simply to copy the schema from the
      repository but we override it to use the DRF spectactular Django
      management command. We use the `--fail-if-warn` flag to allow this job
      to additionally act as a "test" test that schema generation succeeds
      without warning.
      
      Add in the plumbing to run the [openapi-generator CLI][1] but only use
      it for the moment as an additional "test" job which validates the spec.
      
      [1]: https://openapi-generator.tech/
      
      The template has been written with an eye to adding to the common
      pipeline and so that there can be zero configuration required to make
      use of it. As such the template follows the rules of the common pipeline
      in being "safe" to include with no side-effects unless it's triggered
      and all CI variables and artefacts are appropriately namespaced.
      
      Closes #24
      929894f5
    • E. Evstafiev's avatar
      Merge branch 'release-it--main' into 'main' · 6bc86ce2
      E. Evstafiev authored
      chore(release): 0.7.0
      
      See merge request !54
      0.7.0
      6bc86ce2
  8. Nov 27, 2024
Loading