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

surelog/yosys: Allow running with newer Python than used during building #68

Merged
merged 3 commits into from
Jan 27, 2021

Conversation

ajelinski
Copy link
Contributor

The change is required for surelog and yosys to work in the SystemVerilog testing workflow: https://github.com/SymbiFlow/sv-tests because they are used alongside Python 3.8. Python 3.7 is still used to build the packages, the only change is about allowing them to be run with Python >=3.7.

yosys requires using more complicated measures to achieve that because it has Python as a host requirement. Even though it's also one of the build requirements and one of them seems to be redundant, I've checked that building fails without the host one.

Therefore conda_build_config.yaml had to be used to loosen the version restriction (by default Python has max_pin: x.x). I removed the old contents of the file since it certainly had no influence. The currently built yosys packages require Python 3.7 to run even though according to the file (together with the python {{ python }} run requirement) specified it should be Python 3.6.

The surelog-uhdm and verilator-uhdm changes are simple fixes because somehow the run key got lost during their addition based on the symbiflow/conda-packages recipe.

@mithro
Copy link
Member

mithro commented Jan 21, 2021

@ajelinski Can you just build everything for both Python 3.7 and Python 3.8?

@ajelinski
Copy link
Contributor Author

@mithro You mean all of the litex-conda-* packages?

@PiotrZierhoffer
Copy link
Contributor

@mithro do you mean building two flavors of each package? Or relaxing the dependencies like here?

@mithro
Copy link
Member

mithro commented Jan 21, 2021

@mithro do you mean building two flavors of each package? Or relaxing the dependencies like here?

Keep strict dependencies and building two flavors of each package.

@mithro You mean all of the litex-conda-* packages?

Yes.

@ajelinski
Copy link
Contributor Author

@mithro This can be done but I don't think it should be applied automatically to all of the packages. I mean, Python version doesn't always matter as it is not always required to build the package and sometimes it's only used to run some build scripts. Therefore many CI jobs would be redundant.

I've just modified the PR change since maybe you're right that it's better to have separate packages for Python 3.7 and 3.8. surelog and yosys definitely need some sort of a change to work with sv-tests so it'd be nice to have at least these two packages built with Python 3.8 for now.

@mithro
Copy link
Member

mithro commented Jan 26, 2021

@ajelinski -- All packages which require Python should build for Python 3.7, Python 3.8, Python 3.9

The reason I was suggesting everything is there is some subtle complexity around the dependencies of Python itself can conflict with dependencies of the other packages.

@@ -331,7 +345,8 @@ jobs:
#26
symbiyosys-linux:
Copy link
Member

Choose a reason for hiding this comment

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

You should probably build SymbiYosys against both these.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done.

The latest tree_sitter v0.2.2 package breaks that build.
@ajelinski
Copy link
Contributor Author

I'll merge the PR since it's been successfully tested already apart from the symbiyosys change that won't be tested because that job is currently skipped as it has been already failing before.

The tree-sitting-verilog started failing from the unrelated reasons so I've skipped it and created an issue for it: #73. I've also created an issue to add all the missing Python 3.8/3.9 builds: #72.

@ajelinski ajelinski merged commit cf2e34e into master Jan 27, 2021
@ajelinski ajelinski deleted the use-python-3.8 branch January 27, 2021 12:56
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.

3 participants