Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add recipe for mseedlib #29360

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

add recipe for mseedlib #29360

wants to merge 1 commit into from

Conversation

megies
Copy link
Contributor

@megies megies commented Mar 6, 2025

Checklist

  • Title of this PR is meaningful: e.g. "Adding my_nifty_package", not "updated meta.yaml".
  • License file is packaged (see here for an example).
  • Source is from official source.
  • Package does not vendor other packages. (If a package uses the source of another package, they should be separate packages or the licenses of all packages need to be packaged).
  • If static libraries are linked in, the license of the static library is packaged.
  • Package does not ship static libraries. If static libraries are needed, follow CFEP-18.
  • Build number is 0.
  • A tarball (url) rather than a repo (e.g. git_url) is used in your recipe (see here for more details).
  • GitHub users listed in the maintainer section have posted a comment confirming they are willing to be listed there.
  • When in trouble, please check our knowledge base documentation before pinging a team.

Copy link
Contributor

github-actions bot commented Mar 6, 2025

Hi! This is the staged-recipes linter and I found some lint.

File-specific lints and/or hints:

  • recipes/mseedlib/meta.yaml:
    • lints:
      • The following maintainers have not yet confirmed that they are willing to be listed here: chad-earthscope. Please ask them to comment on this PR if they are.

@conda-forge-admin
Copy link
Contributor

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipes/mseedlib/meta.yaml) and found it was in an excellent condition.

I do have some suggestions for making it better though...

For recipes/mseedlib/meta.yaml:

  • ℹ️ noarch: python recipes should usually follow the syntax in our documentation for specifying the Python version.
    • For the host section of recipe, you should usually use python {{ python_min }} for the python entry.
    • For the run section of recipe, you should usually use python >={{ python_min }} for the python entry.
    • For the test.requires section of recipe, you should usually use python {{ python_min }} for the python entry.
    • If the package requires a newer Python version than the currently supported minimum version on conda-forge, you can override the python_min variable by adding a Jinja2 set statement at the top of your recipe (or using an equivalent context variable for v1 recipes).

This message was generated by GitHub Actions workflow run https://github.com/conda-forge/conda-forge-webservices/actions/runs/13703452336. Examine the logs at this URL for more detail.

@megies
Copy link
Contributor Author

megies commented Mar 7, 2025

Not sure how to debug this locally on Linux. Tried to follow the readme but pixi (which I don't know at all) fails with..

$ pixi run build-osx
build-osx: command not found

Available tasks:
	build-linux
	cran
	lint
	pypi

And calling build_locally.py does some docker stuff but then also fails. It's not clear to me what exactly fails, I see mention of what file seems to be failing but not with what error. There is mention of a debug mode ( Debug Mode: false, but I can not see how to enable it (--debug didn't seem to do anything differently):

Detail output
$ python build-locally.py --debug
valid configs are {'osx_arm64', 'linux_aarch64', 'linux64', 'osx64', 'linux64_cuda118', 'win64', 'linux64_cuda126'}
config not selected, please choose from the following:

1. linux64
2. linux64_cuda118
3. linux64_cuda126
4. linux_aarch64
5. osx64
6. osx_arm64
7. win64

> 5
selected osx64
Configure Docker
+++ dirname .scripts/run_docker_build.sh
++ cd .scripts/..
++ pwd
+ REPO_ROOT=/home/megies/git/staged-recipes
+ ARTIFACTS=/home/megies/git/staged-recipes/build_artifacts
+++ dirname .scripts/run_docker_build.sh
++ cd .scripts
++ pwd
+ THISDIR=/home/megies/git/staged-recipes/.scripts
++ basename /home/megies/git/staged-recipes/.scripts
+ PROVIDER_DIR=.scripts
+ AZURE=False
+ docker info
Client: Docker Engine - Community
 Version:    28.0.1
 Context:    default
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.21.1
    Path:     /usr/libexec/docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.33.1
    Path:     /usr/libexec/docker/cli-plugins/docker-compose

Server:
 Containers: 13
  Running: 0
  Paused: 0
  Stopped: 13
 Images: 3
 Server Version: 28.0.1
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: systemd
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: bcc810d6b9066471b0b6fa75f557a15a1cbf31bb
 runc version: v1.2.4-0-g6c52b3f
 init version: de40ad0
 Security Options:
  apparmor
  seccomp
   Profile: builtin
  cgroupns
 Kernel Version: 5.10.0-33-amd64
 Operating System: Debian GNU/Linux 11 (bullseye)
 OSType: linux
 Architecture: x86_64
 CPUs: 8
 Total Memory: 31.08GiB
 Name: blabla
 ID: f12345aa-aa2d-1gg4-g23j-123456a1a123
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Experimental: false
 Insecure Registries:
  ::1/128
  127.0.0.0/8
 Live Restore Enabled: false

++ id -u
+ HOST_USER_ID=1049
+ hash docker-machine
+ '[' -z '' ']'
++ shyaml -h
+ SHYAML_INSTALLED='
Parses and output chosen subpart or values from YAML input.
It reads YAML in stdin and will output on stdout it'\''s return value.

Usage:

    shyaml {-h|--help}
    shyaml {-V|--version}
    shyaml [-y|--yaml] [-q|--quiet] ACTION KEY [DEFAULT]


Options:

    -y, --yaml
              Output only YAML safe value, more precisely, even
              literal values will be YAML quoted. This behavior
              is required if you want to output YAML subparts and
              further process it. If you know you have are dealing
              with safe literal value, then you don'\''t need this.
              (Default: no safe YAML output)

    -q, --quiet
              In case KEY value queried is an invalid path, quiet
              mode will prevent the writing of an error message on
              standard error.
              (Default: no quiet mode)

    -L, --line-buffer
              Force parsing stdin line by line allowing to process
              streamed YAML as it is fed instead of buffering
              input and treating several YAML streamed document
              at once. This is likely to have some small performance
              hit if you have a huge stream of YAML document, but
              then you probably don'\''t really care about the
              line-buffering.
              (Default: no line buffering)

    ACTION    Depending on the type of data you'\''ve targetted
              thanks to the KEY, ACTION can be:

              These ACTIONs applies to any YAML type:

                get-type          ## returns a short string
                get-value         ## returns YAML

              These ACTIONs applies to '\''sequence'\'' and '\''struct'\'' YAML type:

                get-values{,-0}   ## returns list of YAML
                get-length        ## returns an integer

              These ACTION applies to '\''struct'\'' YAML type:

                keys{,-0}         ## returns list of YAML
                values{,-0}       ## returns list of YAML
                key-values,{,-0}  ## returns list of YAML

              Note that any value returned is returned on stdout, and
              when returning ``list of YAML``, it'\''ll be separated by
              a newline or ``NUL`` char depending of you'\''ve used the
              ``-0`` suffixed ACTION.

    KEY       Identifier to browse and target subvalues into YAML
              structure. Use ``.`` to parse a subvalue. If you need
              to use a literal ``.`` or ``\``, use ``\`` to quote it.

              Use struct keyword to browse ``struct`` YAML data and use
              integers to browse ``sequence`` YAML data.

    DEFAULT   if not provided and given KEY do not match any value in
              the provided YAML, then DEFAULT will be returned. If no
              default is provided and the KEY do not match any value
              in the provided YAML, shyaml will fail with an error
              message.

Examples:

     ## get last grocery
     cat recipe.yaml       | shyaml get-value groceries.-1

     ## get all words of my french dictionary
     cat dictionaries.yaml | shyaml keys-0 french.dictionary

     ## get YAML config part of '\''myhost'\''
     cat hosts_config.yaml | shyaml get-value cfgs.myhost'
+ '[' '
Parses and output chosen subpart or values from YAML input.
It reads YAML in stdin and will output on stdout it'\''s return value.

Usage:

    shyaml {-h|--help}
    shyaml {-V|--version}
    shyaml [-y|--yaml] [-q|--quiet] ACTION KEY [DEFAULT]


Options:

    -y, --yaml
              Output only YAML safe value, more precisely, even
              literal values will be YAML quoted. This behavior
              is required if you want to output YAML subparts and
              further process it. If you know you have are dealing
              with safe literal value, then you don'\''t need this.
              (Default: no safe YAML output)

    -q, --quiet
              In case KEY value queried is an invalid path, quiet
              mode will prevent the writing of an error message on
              standard error.
              (Default: no quiet mode)

    -L, --line-buffer
              Force parsing stdin line by line allowing to process
              streamed YAML as it is fed instead of buffering
              input and treating several YAML streamed document
              at once. This is likely to have some small performance
              hit if you have a huge stream of YAML document, but
              then you probably don'\''t really care about the
              line-buffering.
              (Default: no line buffering)

    ACTION    Depending on the type of data you'\''ve targetted
              thanks to the KEY, ACTION can be:

              These ACTIONs applies to any YAML type:

                get-type          ## returns a short string
                get-value         ## returns YAML

              These ACTIONs applies to '\''sequence'\'' and '\''struct'\'' YAML type:

                get-values{,-0}   ## returns list of YAML
                get-length        ## returns an integer

              These ACTION applies to '\''struct'\'' YAML type:

                keys{,-0}         ## returns list of YAML
                values{,-0}       ## returns list of YAML
                key-values,{,-0}  ## returns list of YAML

              Note that any value returned is returned on stdout, and
              when returning ``list of YAML``, it'\''ll be separated by
              a newline or ``NUL`` char depending of you'\''ve used the
              ``-0`` suffixed ACTION.

    KEY       Identifier to browse and target subvalues into YAML
              structure. Use ``.`` to parse a subvalue. If you need
              to use a literal ``.`` or ``\``, use ``\`` to quote it.

              Use struct keyword to browse ``struct`` YAML data and use
              integers to browse ``sequence`` YAML data.

    DEFAULT   if not provided and given KEY do not match any value in
              the provided YAML, then DEFAULT will be returned. If no
              default is provided and the KEY do not match any value
              in the provided YAML, shyaml will fail with an error
              message.

Examples:

     ## get last grocery
     cat recipe.yaml       | shyaml get-value groceries.-1

     ## get all words of my french dictionary
     cat dictionaries.yaml | shyaml keys-0 french.dictionary

     ## get YAML config part of '\''myhost'\''
     cat hosts_config.yaml | shyaml get-value cfgs.myhost' == NO ']'
++ cat /home/megies/git/staged-recipes/.ci_support/osx64.yaml
++ shyaml get-value docker_image.0 quay.io/condaforge/linux-anvil-comp7
+ DOCKER_IMAGE=quay.io/condaforge/linux-anvil-comp7
+ mkdir -p /home/megies/git/staged-recipes/build_artifacts
+ DONE_CANARY=/home/megies/git/staged-recipes/build_artifacts/conda-forge-build-done
+ rm -f /home/megies/git/staged-recipes/build_artifacts/conda-forge-build-done
+ DOCKER_RUN_ARGS='-it '
+ '[' False == True ']'
Start Docker
+ docker pull quay.io/condaforge/linux-anvil-comp7
Using default tag: latest
latest: Pulling from condaforge/linux-anvil-comp7
Digest: sha256:7517d8a3c6c2d036b48483f57300d4da8c8563a71dac5e8c7546209cd473d198
Status: Image is up to date for quay.io/condaforge/linux-anvil-comp7:latest
quay.io/condaforge/linux-anvil-comp7:latest
+ docker run -it -v /home/megies/git/staged-recipes:/home/conda/staged-recipes -e HOST_USER_ID=1043 -e AZURE=False -e CONFIG -e CI -e CPU_COUNT -e DEFAULT_LINUX_VERSION quay.io/condaforge/linux-anvil-comp7 bash /home/conda/staged-recipes/.scripts/build_steps.sh
Traceback (most recent call last):
  File "/home/megies/git/staged-recipes/build-locally.py", line 115, in <module>
    main()
    ~~~~^^
  File "/home/megies/git/staged-recipes/build-locally.py", line 107, in main
    run_docker_build(ns)
    ~~~~~~~~~~~~~~~~^^^^
  File "/home/megies/git/staged-recipes/build-locally.py", line 39, in run_docker_build
    subprocess.check_call([script])
    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^
  File "/home/megies/miniconda3/envs/conda-forge/lib/python3.13/subprocess.py", line 421, in check_call
    raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['.scripts/run_docker_build.sh']' returned non-zero exit status 139.

I am kind of going on the assumption that since docker is used it is possible to test build for MacOS on a linux machine? Or is that a wrong assumption and I can't test the MacOS build locally on Linux?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

2 participants