From dd607d11d5282221614e61f751087f5246452f3a Mon Sep 17 00:00:00 2001 From: Tom Scogland Date: Thu, 30 Nov 2023 10:32:21 -0800 Subject: [PATCH] developer tools stack try 2 (#40921) * developer tools stack try 2 This version is actually in use locally and has largely stabilized, at least on x86. Some packages are still a challenge on ppc64le, but maybe worth keeping this working as a set. * add packages, try to get container with newer gcc * remove reuse: true * try to get cmake to build on medium, 25 minutes is too long * add lsd package and add to dev tools stack * clean up fzf dependency and sorting * Update share/spack/gitlab/cloud_pipelines/stacks/developer_tools/spack.yaml * cuda: add 12.3.0 (#40827) * Switch to dashes * yet more underscores --------- Co-authored-by: Paul R. C. Kent --- .../gitlab/cloud_pipelines/.gitlab-ci.yml | 22 ++++++ .../cloud_pipelines/configs/linux/ci.yaml | 1 - .../stacks/developer-tools/spack.yaml | 69 +++++++++++++++++++ .../repos/builtin/packages/lsd/package.py | 22 ++++++ 4 files changed, 113 insertions(+), 1 deletion(-) create mode 100644 share/spack/gitlab/cloud_pipelines/stacks/developer-tools/spack.yaml create mode 100644 var/spack/repos/builtin/packages/lsd/package.py diff --git a/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml b/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml index 0c3991efed..e1d7561300 100644 --- a/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml +++ b/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml @@ -461,6 +461,28 @@ build_systems-build: - artifacts: True job: build_systems-generate +########################################### +# Build tests for different developer tools +########################################### +.developer-tools: + extends: [ ".linux_x86_64_v3" ] + variables: + SPACK_CI_STACK_NAME: developer-tools + +developer-tools-generate: + extends: [ ".developer-tools", ".generate-x86_64"] + +developer-tools-build: + extends: [ ".developer-tools", ".build" ] + trigger: + include: + - artifact: jobs_scratch_dir/cloud-ci-pipeline.yml + job: developer-tools-generate + strategy: depend + needs: + - artifacts: True + job: developer-tools-generate + ######################################### # RADIUSS ######################################### diff --git a/share/spack/gitlab/cloud_pipelines/configs/linux/ci.yaml b/share/spack/gitlab/cloud_pipelines/configs/linux/ci.yaml index 8634042101..986277bfdd 100644 --- a/share/spack/gitlab/cloud_pipelines/configs/linux/ci.yaml +++ b/share/spack/gitlab/cloud_pipelines/configs/linux/ci.yaml @@ -193,7 +193,6 @@ ci: - blt - bzip2 - camp - - cmake - curl - czmq - darshan-util diff --git a/share/spack/gitlab/cloud_pipelines/stacks/developer-tools/spack.yaml b/share/spack/gitlab/cloud_pipelines/stacks/developer-tools/spack.yaml new file mode 100644 index 0000000000..cc4c27261f --- /dev/null +++ b/share/spack/gitlab/cloud_pipelines/stacks/developer-tools/spack.yaml @@ -0,0 +1,69 @@ +spack: + view: false + packages: + all: + require: target=x86_64_v3 + concretizer: + unify: true + definitions: + - default_specs: + # editors + - neovim~no_luajit + - py-pynvim + - emacs@29.1+json+native+treesitter # note, pulls in gcc + # - tree-sitter is a dep, should also have cli but no package + - nano # just in case + # tags and scope search helpers + - universal-ctags # only maintained ctags, works better with c++ + - direnv + # runtimes and compilers + - python + - llvm+link_llvm_dylib~lld~lldb~polly+python build_type=MinSizeRel # for clangd, clang-format + - node-js # for editor plugins etc., pyright language server + - npm + - go # to build fzf, gh, hub + - rust+analysis # fd, ripgrep, hyperfine, exa, rust-analyzer + - binutils+ld+gold+plugins # support linking with built gcc + # styling and lints + - astyle + - cppcheck + - uncrustify + - py-fprettify + - py-fortran-language-server + - py-python-lsp-server + # cli dev tools + - ripgrep + - gh + - fd + - bfs + - fzf + - tree + - jq + - py-yq + - hub + - ncdu + - eza + - lsd + - hyperfine + - htop + - tmux + - ccache + # ensure we can use a jobserver build and do this fast + - gmake + - ninja # should be @kitware, can't be because of meson requirement + - "openssl certs=system" # must be this, system external does not work + - arch: + - '%gcc target=x86_64_v3' + + specs: + - matrix: + - - $default_specs + - - $arch + + ci: + pipeline-gen: + - build-job: + image: "ghcr.io/spack/ubuntu20.04-runner-amd64-gcc-11.4:2023.08.01" + + cdash: + build-group: Developer Tools diff --git a/var/spack/repos/builtin/packages/lsd/package.py b/var/spack/repos/builtin/packages/lsd/package.py new file mode 100644 index 0000000000..a1702a8e75 --- /dev/null +++ b/var/spack/repos/builtin/packages/lsd/package.py @@ -0,0 +1,22 @@ +# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class Lsd(CargoPackage): + """A rewrite of GNU ls with lots of added features like colors, icons, tree-view, + more formatting options etc.""" + + homepage = "https://github.com/lsd-rs/lsd" + url = "https://github.com/lsd-rs/lsd/archive/refs/tags/v1.0.0.tar.gz" + + maintainers("trws") + + license("Apache-2.0") + + version("1.0.0", sha256="ab34e9c85bc77cfa42b43bfb54414200433a37419f3b1947d0e8cfbb4b7a6325") + + depends_on("rust@1.63:")