Skip to content

CI thoughts and worries #2163

@SimonHeybrock

Description

@SimonHeybrock

Recent trouble with the packaging highlighted a number of shortcomings of the current setup:

  • The manual coping of files in build_conda.py was very hard to debug and led to many slow iterations while attempting to fix the packaging. If I remember correctly the reason for this was to avoid rebuilds when calling conda --build?
  • A sub-problem of the former was the mix of platform-specifics in this script, which meant fixing one platform broke the other platform's packages (more than once).
  • We build install and all-tests before running any of the tests. One reason for splitting the scipp codebase into sublibraries was to be able to abort early, e.g., to run scipp-core-test before compiling scipp-variable. This advantage was lost at some point. While this may sometimes be irrelevant, during the past week or so I did observe that we had jobs waiting for free builders at times when we were merging/pushing in multiple projects (scipp, scippneutron, ess) at the same time.
    • Would maybe require fixing the unresolved MSVC issue of full recompilation of all object files and libraries for every target.
  • Could consider building without IPO for PRs?
  • Having to maintain a series of different env files is becoming a nightmare. We have:
    • dev envs (multiple platforms), used also for parts of CI
    • conda build meta.yml
    • User-facing envs (linked to from docs)
  • Do we actually want to publish a package for every push to main?
  • We have multiple times broken the ability to make patch releases by updating pipelines. Should probably use tags in pipelines repo, and refer to concrete tags from downstream CI? -> fixed in Use pipelines tags to avoid breaking ability for patch releases #2207.

Metadata

Metadata

Assignees

No one assigned

    Labels

    build systemRelated to continuous integration & testing infrastructurediscussion

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions