-
-
Notifications
You must be signed in to change notification settings - Fork 5.1k
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
feat: introduce cocotb support to conda-forge #21056
Conversation
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 ( I do have some suggestions for making it better though... For recipes/cocotb:
Documentation on acceptable licenses can be found here. |
@conda-forge-admin, please ping conda-forge/help-python |
Hi! This is the friendly automated conda-forge-webservice. I was asked to ping @conda-forge/help-python and so here I am doing that. |
bd6d292
to
71fe4ba
Compare
Hi! This is the friendly automated conda-forge-linting service. I wanted to let you know that I linted all conda-recipes in your PR ( Here's what I've got... For recipes/cocotb:
For recipes/cocotb:
Documentation on acceptable licenses can be found here. |
The recipe is generated with grayskull Signed-off-by: Tianrui Wei <[email protected]>
71fe4ba
to
14c3406
Compare
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 ( I do have some suggestions for making it better though... For recipes/cocotb:
Documentation on acceptable licenses can be found here. |
Hi. Philipp from the cocotb project here. Thanks for helping to make cocotb better. Can you explain what the benefits are of adding cocotb to conda-forge? I'm asking because the majority of support questions we get on the cocotb side are installation-related, and we are working hard to make our installer (as it appears on PyPi) robust and well-tested. Adding another installation variant to the mix is likely to increase our support burden significantly -- hence a closer look at the benefits is warranted. (Background: cocotb is a bit a "special" Python package, as it is loaded into a Python (libpython) embedded into a (typically closed-source) VHDL/Verilog simulator. Getting all the linking and library discovery right is a major challenge, and the end result is still rather fragile.) |
Hi Philipp, Thanks for the reply. The reason I want to add cocotb to conda forge is to enable cocotb in a more reproducible build system like conda. Getting certain library and python versions with pip is still painful even with pip. Regarding the maintenance burden, I'm happy to fix issues that's conda related should they arrive :) Best regards, |
That sounds interesting -- can you elaborate on that a bit more? Which kind of reproducibility is conda adding? Is it reproducing binaries from sources? cocotb ships (since the 1.7 release) binary wheels and tests them in CI against a fair amount of simulators, so we know pretty well which builds users are running. |
Different from PyPI, conda is more of a general package manager where you can install gcc, standalone python, software libraries etc. You can even ship your own version of iverilog, yosys or verilator via a conda package. It also supports pinning package versions with conda-lock. |
@conda-forge-admin, please ping conda-forge/staged-recipe |
Hi! This is the friendly automated conda-forge-webservice. I was asked to ping @conda-forge/staged-recipe and so here I am doing that. |
Yes, conda is a general package manager. PYPI was not intended to distribute non-python packages, whereas conda supports package management for libraries/binaries that are non-python. |
license: BSD-4-Clause & BSD-3-Clause | ||
license_file: | ||
- LICENSE | ||
- cocotb/_vendor/tcl/license.terms |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is incomplete. You need to include the license information for ALL of the revendored source code.
https://github.com/cocotb/cocotb/tree/master/cocotb/_vendor
run: | ||
- python >=3.6 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Docs say that this package requires a simulator. Where are the simulators?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
iverilog/verilator are 2 supported simulators, both already available via conda forge
sha256: 1f390bb6468d70e04acebeb9ff05b54be42cbbbbbb3bd6c75d1ec0a36cb97e23 | ||
|
||
build: | ||
noarch: python |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This package is not noarch. It contains compiled code.
noarch: python |
test: | ||
imports: | ||
- cocotb | ||
commands: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please tests any CLIs that this package has.
https://github.com/cocotb/cocotb/blob/d2b8dab8f5baffbc6cc53a6c44068011e5532089/setup.py#L116
missing_dso_whitelist: | ||
- '*/libgcc_s.so.1' | ||
- '*/libstdc++.so.6' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This package contains compiled C code. Why would you whitelist missing C libraries?
skip: | ||
- true # [win or osx] | ||
|
||
requirements: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
find_libpython is also a dependency?
https://github.com/cocotb/cocotb/blob/d2b8dab8f5baffbc6cc53a6c44068011e5532089/setup.py#L101
I'm probably going to open a similar PR shortly unless we want to finish fixing up this one, I can list @tianrui-wei as maintainer as well |
@carterbox / @tianrui-wei ive resolved all (?) except the license comments on my PR, will fix the licenses shortly (need to find how the IEEE LRM code is licensed) |
Hi @timkpaine, sorry for the delay in response and thanks for fixing the outstanding issues. One reason I kind of gave up on this PR is that it contains source code licensed by Siemens Mentor, and it's not clear to me whether it's compatible with open source licenses that conda forge accepts. Thanks for the effort anyway :) |
The recipe is generated with grayskull
Signed-off-by: Tianrui Wei [email protected]
Checklist
url
) rather than a repo (e.g.git_url
) is used in your recipe (see here for more details).