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

Conda Bump version #273

Merged
merged 32 commits into from
Oct 6, 2021
Merged

Conda Bump version #273

merged 32 commits into from
Oct 6, 2021

Conversation

jburel
Copy link
Member

@jburel jburel commented Sep 24, 2021

This PR introduces a new command scc bump-version-conda to update the version and sha256 in the meta.yaml files in the conda-* repositories. The command will be run in a GitHub action using a scheduled job in the conda-* repositories i.e. similar to a bot. If changes are detected, the meta files are modified, committed and a PR is created. Note that the method bump-version-conda does not create the PR, this done via GitHub action in order to reduce the boiler plate required to create a PR

What does this PR do?

  • Find the meta.yaml files in the conda-* repositories
  • Find the latest tag from the target repository using git ls-remote. rc, dv, m* are not considered
  • Check the version in the meta file.
  • If no version changed, the process stops
  • If version changed, determine which sha256 to use depending on the package. This could be from GH, pypi, downloads.o.org
  • Update the version/sha256 in the meta.yml files
  • commit changes.

To test this PR:

  • In a virtual environment, install this branch
  • Activate the environment

Test 1:

  • Go to conda-omero-py:
  • run scc bump-version-conda
  • nothing should be committed.
  • modify the version in meta file, save, do not commit.
  • run the command again
  • the process will run, the file will be updated but the commit will not occur

Test 2:

Test 3:

  • conda-raw2ometiff
  • run scc bump-version-conda
  • Check that nothing is changed i.e. rc is not applied.

Workflow in action jburel/conda-omero-py#4

cc @joshmoore @sbesson

Copy link
Member

@sbesson sbesson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested on a few repository suggested in the description using the previous tag and running the suggested commands.

In addition to the various inline comment, the primary issue for repositories with multiple packages like conda-raw2ometiff or conda-bftools is that the transformation works for one of the packages but the other package is completely overwritten with the same YAML.

A minor formatting issue is that the YAML file is writtent with different indentation style, making the diff longer than it should be.

scc/git.py Outdated
return

if args.repo:
url = self.GITHUB_URL + args.repo
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we actually enforce this at the metadata layer? i.e. have some key that would always refer to the source GitHub repository so that this would not need to be pass at runtime?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I went with the current status of the repositories. Having a common template will certainly simplify the handling

scc/git.py Outdated Show resolved Hide resolved
scc/git.py Outdated Show resolved Hide resolved
scc/git.py Outdated Show resolved Hide resolved
scc/git.py Show resolved Hide resolved
scc/git.py Outdated Show resolved Hide resolved
@jburel
Copy link
Member Author

jburel commented Sep 27, 2021

A minor formatting issue is that the YAML file is written with different indentation style, making the diff longer than it should be.

The BF conda file does not follow any of the conventions used in the other repositories, leading to the indentation style difference

@jburel
Copy link
Member Author

jburel commented Sep 27, 2021

In addition to the various inline comment, the primary issue for repositories with multiple packages like conda-raw2ometiff or conda-bftools is that the transformation works for one of the packages but the other package is completely overwritten with the same YAML.

Ha, the change I made to fix the writing introduced a bug for repositories with multiple meta files. Thanks for checking that.

@sbesson
Copy link
Member

sbesson commented Sep 27, 2021

The BF conda file does not follow any of the conventions used in the other repositories, leading to the indentation style difference

This is unrelated to the style of the conda-bftools YAML file to the best of my knowledge, running the command against conda-omero-py set to the 5.9.1-0 tag gives me

diff --git a/meta.yaml b/meta.yaml
index e38e08d..787dca5 100644
--- a/meta.yaml
+++ b/meta.yaml
@@ -1,13 +1,14 @@
 {% set name = "omero-py" %}
-{% set version = "5.9.1" %}
+{% set version = 5.10.0 %}
 
 package:
   name: "{{ name|lower }}"
   version: "{{ version }}{{ environ.get('VERSION_SUFFIX', '') }}"
 
 source:
-  url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz
-  sha256: 173b09411b45e4f728b54fd8203c246e2e114d0cc75fa083c5eecee76456cb21
+  url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version
+    }}.tar.gz
+  sha256: b9e8d71ca56131367045e976c490e6c0913525e0331a504d639a6d10f771e42d
 
 build:
   # Can't use noarch because Windows requirements are different
@@ -16,46 +17,46 @@ build:
   number: 1
   script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed -vv "
   script_env:
-    - VERSION_SUFFIX
+  - VERSION_SUFFIX
   entry_points:
-    - omero = omero.main:main
+  - omero = omero.main:main
 
 requirements:
   host:
-    - pip
-    - python
+  - pip
+  - python
   run:
-    - appdirs
-    - future
-    - numpy
-    - pillow
-    - python
-    - pywin32  # [win]
-    - requests
-    - pyyaml
-    - zeroc-ice36-python
+  - appdirs
+  - future
+  - numpy
+  - pillow
+  - python
+  - pywin32    # [win]
+  - requests
+  - pyyaml
+  - zeroc-ice36-python
 
 test:
   commands:
-    - omero --help
-    - omero version
+  - omero --help
+  - omero version
   imports:
-    - omero
-    - omero.api
-    - omero.clients
-    - omero.cmd
-    - omero.constants
-    - omero.fs
-    - omero.gateway
-    - omero.grid
-    - omero.install
-    - omero.metadatastore
-    - omero.model
-    - omero.plugins
-    - omero.romio
-    - omero.sys
-    - omero.util
-    - omero_ext
+  - omero
+  - omero.api
+  - omero.clients
+  - omero.cmd
+  - omero.constants
+  - omero.fs
+  - omero.gateway
+  - omero.grid
+  - omero.install
+  - omero.metadatastore
+  - omero.model
+  - omero.plugins
+  - omero.romio
+  - omero.sys
+  - omero.util
+  - omero_ext
 
 about:
   home: https://www.openmicroscopy.org/
@@ -67,4 +68,4 @@ about:
 
 extra:
   recipe-maintainers:
-    - ome
+  - ome

@jburel
Copy link
Member Author

jburel commented Sep 27, 2021

aha, my file must have been already "correctly" formatted during my tests

@jburel
Copy link
Member Author

jburel commented Sep 28, 2021

The BF conda file does not follow any of the conventions used in the other repositories, leading to the indentation style difference

This is unrelated to the style of the conda-bftools YAML file to the best of my knowledge, running the command against conda-omero-py set to the 5.9.1-0 tag gives me

The package ruamel.yaml will force your output to be consistent with regards to indentation. So we will have to add some custom code to keep specific indentation for lines starting with -, # etc. I think it will be preferable to unify the files, set on the indentation (yaml.indent(mapping=2) by default)

@sbesson
Copy link
Member

sbesson commented Sep 28, 2021

👍 for YAML consistency across all files and hacing it enforced by the writing tool.

I was just surprised by the indentation of the block list item mostly because other places like the Ansible roles use yamllint which by default expect the 2 spaces indentation. Reading further I discovered that both forms (non indented and indented) seem to be valid according to the spec especially The “-”, “?” and “:” characters used to denote block collection entries are perceived by people to be part of the indentation.

@jburel
Copy link
Member Author

jburel commented Sep 28, 2021

All the points have now been fixed (I think). Comment #273 (comment), the code could be removed after changing the logic in the yaml files across the various repositories

@sbesson
Copy link
Member

sbesson commented Sep 29, 2021

Retested on the various repository

  • for conda-omero-py, running git checkout 5.9.1-0 && scc bump-version-conda && git diff -w 5.10.0-0
diff --git a/meta.yaml b/meta.yaml
index 081bff7..787dca5 100644
--- a/meta.yaml
+++ b/meta.yaml
@@ -1,12 +1,13 @@
 {% set name = "omero-py" %}
-{% set version = "5.10.0" %}
+{% set version = 5.10.0 %}
 
 package:
   name: "{{ name|lower }}"
   version: "{{ version }}{{ environ.get('VERSION_SUFFIX', '') }}"
 
 source:
-  url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz
+  url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version
+    }}.tar.gz
   sha256: b9e8d71ca56131367045e976c490e6c0913525e0331a504d639a6d10f771e42d
 
 build:
  • for conda-bftools, running git checkout 6.6.0 && /opt/ome/scc/venv/bin/scc bump-version-conda --repo ome/bioformats && git diff -w 6.6.0
diff --git a/bftools-libs/meta.yaml b/bftools-libs/meta.yaml
index 568c893..9b30479 100644
--- a/bftools-libs/meta.yaml
+++ b/bftools-libs/meta.yaml
@@ -1,6 +1,6 @@
 package:
   name: "bftools-libs"
-  version: "6.6.0"
+  version: "6.7.0"
 
 build:
   number: 0
@@ -8,7 +8,7 @@ build:
 
 source:
   url: https://downloads.openmicroscopy.org/bio-formats/{{ PKG_VERSION }}/artifacts/bftools.zip
-  sha256: d13553047ac552327107e029a077e32b48a7e0f7e028cf4c04d81539f2f56a21
+  sha256: 31a4200f7c5271bd11640743244b15ecb5166214
 
 extra:
   recipe-maintainers:
diff --git a/bftools/meta.yaml b/bftools/meta.yaml
index 1801170..8f18f73 100644
--- a/bftools/meta.yaml
+++ b/bftools/meta.yaml
@@ -1,13 +1,13 @@
 package:
   name: "bftools"
-  version: "6.6.0"
+  version: "6.7.0"
 
 build:
   number: 0
 
 source:
   url: https://downloads.openmicroscopy.org/bio-formats/{{ PKG_VERSION }}/artifacts/bftools.zip
-  sha256: d13553047ac552327107e029a077e32b48a7e0f7e028cf4c04d81539f2f56a21
+  sha256: 31a4200f7c5271bd11640743244b15ecb5166214
 
 requirements:
   run:
  • for conda-raw2ometiff, running git checkout f15cdb1 && scc bump-version-conda --repo glencoesoftware/raw2ometiff leads to
$ /opt/ome/scc/venv/bin/scc bump-version-conda --repo glencoesoftware/raw2ometiff
Traceback (most recent call last):
File "/opt/ome/scc/venv/lib/python3.8/site-packages/scc/main.py", line 64, in entry_point
  main("scc", items=[
File "/opt/ome/scc/venv/lib/python3.8/site-packages/yaclifw/framework.py", line 188, in main
  ns.func(ns)
File "/opt/ome/scc/venv/lib/python3.8/site-packages/scc/git.py", line 4090, in __call__
  sha = self.get_sha_from_github(jinja2[self.KEY_NAME],
KeyError: 'name'

All non-whitespace diff are related to the formatting style discussed earlier. Two outstanding issue:

  • for conda-bftools the SHA is still a SHA1 rather than a SHA256
  • the command fails against conda-raw2ometiff

@sbesson
Copy link
Member

sbesson commented Sep 29, 2021

the lack of consistency between the repositories makes the handling of the various cases very tricky.

I agree. As this PR is trying to handle all these cases, the two options I can think of would be:

  • limit the scope to one recipe first and then work on the other use cases - but that likely escapes the hard work
  • make the decisions to define the specification for our recipes and enforce consistency between the repositories first and then have this command expect to meet this layout

Is there a shortlist of the divergences that need to be reviewed?

@jburel
Copy link
Member Author

jburel commented Sep 29, 2021

Differences

  • usage or not of jinja2 for setting variables
  • when jinja2 is used: version or name or both are used
  • url to determine the sha256 is formatted differently: version is used, name sometimes, other variable at time.

We may also want to add the repo i.e. ome/omero-py for example so we do not have to pass the parameter

The problems reported for conda-raw2ometiff and conda-bftools have now been fixed. Looking at the usage of quotes for jinja2

@jburel
Copy link
Member Author

jburel commented Sep 29, 2021

@sbesson the problems described in #273 (comment) should now be fixed

Copy link
Member

@sbesson sbesson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-executed the last commit against the various repositories

  • conda-omero-py: git checkout 5.9.1-0 & scc bump-version-conda && git diff -w 5.10.0-0
diff --git a/meta.yaml b/meta.yaml
index 081bff7..fb5658c 100644
--- a/meta.yaml
+++ b/meta.yaml
@@ -6,7 +6,8 @@ package:
   version: "{{ version }}{{ environ.get('VERSION_SUFFIX', '') }}"
 
 source:
-  url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz
+  url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version
+    }}.tar.gz
   sha256: b9e8d71ca56131367045e976c490e6c0913525e0331a504d639a6d10f771e42d
 
 build:
  • conda-bftools: git checkout 6.6.0 && scc bump-version-conda --repo ome/bioformats && git diff -w 6.6.0
diff --git a/bftools-libs/meta.yaml b/bftools-libs/meta.yaml
index 568c893..e02b1da 100644
--- a/bftools-libs/meta.yaml
+++ b/bftools-libs/meta.yaml
@@ -1,6 +1,6 @@
 package:
   name: "bftools-libs"
-  version: "6.6.0"
+  version: "6.7.0"
 
 build:
   number: 0
@@ -8,7 +8,7 @@ build:
 
 source:
   url: https://downloads.openmicroscopy.org/bio-formats/{{ PKG_VERSION }}/artifacts/bftools.zip
-  sha256: d13553047ac552327107e029a077e32b48a7e0f7e028cf4c04d81539f2f56a21
+  sha256: 7c013b23529d61280e04c3dd312401d7b71fb5892f5e7870f87d37bab5f3988f
 
 extra:
   recipe-maintainers:
diff --git a/bftools/meta.yaml b/bftools/meta.yaml
index 1801170..05b5ad9 100644
--- a/bftools/meta.yaml
+++ b/bftools/meta.yaml
@@ -1,13 +1,13 @@
 package:
   name: "bftools"
-  version: "6.6.0"
+  version: "6.7.0"
 
 build:
   number: 0
 
 source:
   url: https://downloads.openmicroscopy.org/bio-formats/{{ PKG_VERSION }}/artifacts/bftools.zip
-  sha256: d13553047ac552327107e029a077e32b48a7e0f7e028cf4c04d81539f2f56a21
+  sha256: 7c013b23529d61280e04c3dd312401d7b71fb5892f5e7870f87d37bab5f3988f
 
 requirements:
   run:
  • conda-bioformats2raw: git checkout 0.2.6-0 && scc bump-version-conda --repo glencoesoftware/bioformats2raw && git diff 0.3.0-0 -w
diff --git a/bioformats2raw-libs/meta.yaml b/bioformats2raw-libs/meta.yaml
index a6448a9..ed80323 100644
--- a/bioformats2raw-libs/meta.yaml
+++ b/bioformats2raw-libs/meta.yaml
@@ -10,7 +10,8 @@ build:
   noarch: generic
 
 source:
-  url: https://github.com/glencoesoftware/bioformats2raw/releases/download/v{{ version }}/bioformats2raw-{{ version }}.zip
+  url: https://github.com/glencoesoftware/bioformats2raw/releases/download/v{{ version
+    }}/bioformats2raw-{{ version }}.zip
   sha256: dbc74eee15b4ce46170aac67de9a1f2849b89b8d84ab55792140d30cd206f8e4
 
 # Leave the OS specific dependencies to the wrapper
diff --git a/bioformats2raw/meta.yaml b/bioformats2raw/meta.yaml
index 4498ea3..a09ad69 100644
--- a/bioformats2raw/meta.yaml
+++ b/bioformats2raw/meta.yaml
@@ -9,7 +9,8 @@ build:
   number: 0
 
 source:
-  url: https://github.com/glencoesoftware/{{ name }}/releases/download/v{{ version }}/{{ name }}-{{ version }}.zip
+  url: https://github.com/glencoesoftware/{{ name }}/releases/download/v{{ version
+    }}/{{ name }}-{{ version }}.zip
   sha256: dbc74eee15b4ce46170aac67de9a1f2849b89b8d84ab55792140d30cd206f8e4
   patches:
   - windows-bat-classpath-wildcard.patch    # [win]
   diff --git a/bioformats2raw/windows-bat-classpath-wildcard.patch b/bioformats2raw/windows-bat-classpath-wildcard.patch
index 887c6ba..bdd806a 100644
--- a/bioformats2raw/windows-bat-classpath-wildcard.patch
+++ b/bioformats2raw/windows-bat-classpath-wildcard.patch
@@ -1,10 +1,10 @@
---- bin/bioformats2raw.bat.orig        2021-08-02 13:34:52.000000000 +0100
-+++ bin/bioformats2raw.bat     2021-08-02 13:35:10.000000000 +0100
+--- bin/bioformats2raw.bat.orig        2020-10-28 10:10:16.000000000 +0000^M
++++ bin/bioformats2raw.bat     2020-10-28 10:10:32.000000000 +0000^M
....

Also executed the scc bump-conda-version from the HEAD of each repository and the only changes where whitespaces (indentation) and the split of url: into multilines.

Functionally this works as expected and I am happy to get this merged to move into the next step.

From the discussion above,a potential set of actions:

Coming back to #273, should we wait until the repositories have been cleaned up and the logic reduced before making a release of this new command?

@jburel
Copy link
Member Author

jburel commented Sep 30, 2021

We already use the about/home for example https://github.com/ome/conda-bftools/blob/master/bftools/meta.yaml#L34 with a different purpose
The dev_url could be used e.g. https://github.com/ome/bioformats

@jburel
Copy link
Member Author

jburel commented Sep 30, 2021

Actually I am going to push another commit using the about/dev_url since it is set in all the repositories.
This means that we won't have to pass any parameter

@sbesson
Copy link
Member

sbesson commented Sep 30, 2021

👍 dev_url is definitely be a viable option - it is one of the accepted keys of the about section - as per https://docs.conda.io/projects/conda-build/en/latest/resources/package-spec.html#info-about-json and is linked from the Conda page https://anaconda.org/ome/omero-py/.

A separate issue is that these terms are fairly undefined. And at least I feel defining https://ww.openmicroscopy.org/ as the home of https://anaconda.org/ome/bioformats2raw is a bit of a stretch for instance.

@jburel
Copy link
Member Author

jburel commented Sep 30, 2021

With 75e59d2, it is no longer necessary to use --repo. The parameter is no longer supported

@jburel
Copy link
Member Author

jburel commented Sep 30, 2021

A separate issue is that these terms are fairly undefined. And at least I feel defining https://ww.openmicroscopy.org/ as the home of https://anaconda.org/ome/bioformats2raw is a bit of a stretch for instance.

Yes, this should be changed.

scc/git.py Outdated Show resolved Hide resolved
scc/git.py Outdated Show resolved Hide resolved
scc/git.py Outdated Show resolved Hide resolved
scc/git.py Outdated Show resolved Hide resolved
jburel and others added 4 commits September 30, 2021 14:29
Co-authored-by: Sébastien Besson <seb.besson@gmail.com>
Co-authored-by: Sébastien Besson <seb.besson@gmail.com>
Co-authored-by: Sébastien Besson <seb.besson@gmail.com>
Co-authored-by: Sébastien Besson <seb.besson@gmail.com>
@sbesson
Copy link
Member

sbesson commented Oct 1, 2021

Briefly discussed with @jburel. The only addition I would suggest would be to have some logic to also reset the build.number to 0 when the version has been detected as different.

@jburel
Copy link
Member Author

jburel commented Oct 4, 2021

The fact that the changes were made even if the version was the same has now be fixed i.e. running scc on the latest conda-omero-py should stop at the version check

Copy link
Member

@sbesson sbesson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested the fail-fast for the version check

(base) sbesson@ls30630:conda-omero-py ((5.10.0-0)) $ /opt/ome/scc/venv/bin/scc bump-version-conda && echo success
2021-10-04 09:22:00,211 [scc.bump-ver] INFO  no new version
success
(base) sbesson@ls30630:conda-raw2ometiff ((0.3.0-0)) $ /opt/ome/scc/venv/bin/scc bump-version-conda && echo success
2021-10-04 09:22:19,777 [scc.bump-ver] INFO  no new version
success

Also tested the build number reset using omero-py

(base) sbesson@ls30630:conda-omero-py ((5.10.0-0)) $ git checkout 5.9.0-0 
Previous HEAD position was 1637920 Merge pull request #17 from jburel/bump510
HEAD is now at d029c15 Merge pull request #16 from jburel/bump_version
(base) sbesson@ls30630:conda-omero-py ((5.9.0-0)) $ /opt/ome/scc/venv/bin/scc bump-version-conda
(base) sbesson@ls30630:conda-omero-py ((fbe4420...)) $ git diff 5.10.0-0 
diff --git a/meta.yaml b/meta.yaml
index 081bff7..5576ea5 100644
--- a/meta.yaml
+++ b/meta.yaml
@@ -6,56 +6,57 @@ package:
   version: "{{ version }}{{ environ.get('VERSION_SUFFIX', '') }}"
 
 source:
-  url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version }}.tar.gz
+  url: https://pypi.io/packages/source/{{ name[0] }}/{{ name }}/{{ name }}-{{ version
+    }}.tar.gz
   sha256: b9e8d71ca56131367045e976c490e6c0913525e0331a504d639a6d10f771e42d
 
 build:
   # Can't use noarch because Windows requirements are different
   # If we remove pywin32 from OMERO.py we could switch to noarch
   # noarch: python
-  number: 1
+  number: 0
   script: "{{ PYTHON }} -m pip install . --no-deps --ignore-installed -vv "
   script_env:
-    - VERSION_SUFFIX
+  - VERSION_SUFFIX
   entry_points:
-    - omero = omero.main:main
+  - omero = omero.main:main
 
 requirements:
   host:
-    - pip
-    - python
+  - pip
+  - python
   run:
-    - appdirs
-    - future
-    - numpy
-    - pillow
-    - python
-    - pywin32  # [win]
-    - requests
-    - pyyaml
-    - zeroc-ice36-python
+  - appdirs
+  - future
+  - numpy
+  - pillow
+  - python
+  - pywin32    # [win]
+  - requests
+  - pyyaml
+  - zeroc-ice36-python
 
 test:
   commands:
-    - omero --help
-    - omero version
+  - omero --help
+  - omero version
   imports:
-    - omero
-    - omero.api
-    - omero.clients
-    - omero.cmd
-    - omero.constants
-    - omero.fs
-    - omero.gateway
-    - omero.grid
-    - omero.install
-    - omero.metadatastore
-    - omero.model
-    - omero.plugins
-    - omero.romio
-    - omero.sys
-    - omero.util
-    - omero_ext
+  - omero
+  - omero.api
+  - omero
+  - omero.api
+  - omero.clients
+  - omero.cmd
+  - omero.constants
+  - omero.fs
+  - omero.gateway
+  - omero.grid
+  - omero.install
+  - omero.metadatastore
+  - omero.model
+  - omero.plugins
+  - omero.romio
+  - omero.sys
+  - omero.util
+  - omero_ext
 
 about:
   home: https://www.openmicroscopy.org/
@@ -67,4 +68,4 @@ about:
 
 extra:
   recipe-maintainers:

Nothing to add from my side. Since the command no longer reformats the YAML recipes if the last release version is identical, should this happen manually for conda-omero-py, conda-raw2ometiff and conda-bioformats2raw or as part of the next release of each component?

@jburel
Copy link
Member Author

jburel commented Oct 4, 2021

The first step:

  • open PR for repositories not declaring version as a jinja2 variable.

@jburel
Copy link
Member Author

jburel commented Oct 6, 2021

No more commits.
Reformatting will occur when the version is changed

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

Successfully merging this pull request may close these issues.

2 participants