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

Updating readme on package indices #2762

Closed
Andrej730 opened this issue Feb 12, 2023 · 19 comments
Closed

Updating readme on package indices #2762

Andrej730 opened this issue Feb 12, 2023 · 19 comments
Assignees

Comments

@Andrej730
Copy link
Contributor

Noticed that PyPI description looks kind of empty and unofficial. I've found that there is already fix for that for PyPI (f0e4397) but PyPI wasn't updated since then.
image

Similar thing with docker, conda and conda-forge

image

@Moult Moult self-assigned this Feb 12, 2023
Moult added a commit that referenced this issue Feb 12, 2023
@Moult
Copy link
Contributor

Moult commented Feb 13, 2023

Ping @Krande @aothms for docker/conda

@Krande
Copy link
Contributor

Krande commented Feb 13, 2023

@Moult The official conda-forge package of Ifcopenshell looks like this:

image

Do you want us to add the Readme file to the description for the conda package as well (assuming its possible)?

@Moult
Copy link
Contributor

Moult commented Feb 13, 2023

Yes I guess if possible all official packages on channels should share the official README :)

Moult added a commit that referenced this issue Feb 16, 2023
@Moult
Copy link
Contributor

Moult commented Feb 16, 2023

Huh, I've tried a few times and no idea what I'm missing to get PyPI happy.

Moult added a commit that referenced this issue Feb 17, 2023
Moult added a commit that referenced this issue Feb 17, 2023
Moult added a commit that referenced this issue Feb 17, 2023
Moult added a commit that referenced this issue Feb 17, 2023
Moult added a commit that referenced this issue Feb 17, 2023
Moult added a commit that referenced this issue Feb 17, 2023
@Moult
Copy link
Contributor

Moult commented Feb 17, 2023

OK I think I've figured this out. It turns out in the case of multiple download packages (e.g. many wheels), PyPI only considers the FIRST uploaded wheel for metadata like project readme... NOT the last / most recent wheel which completely caught me off guard.

This is a problem because historically we only have one "version" of 0.7.0 on PyPI, with a "rolling release" of wheels. (haha get it)

In any case I've adjusted it to now release 0.7.0.YYMMDD suffixes so now we can have proper versions and end-users can also lock to a particular YYMMDD release if they want.

However then I ran into this incredible bug with PyPI pypa/packaging-problems#74 where if you delete a file on their web dashboard it creates a situation where you can never use that filename again (unless you do some manual packaging hacks or something supposedly). So let's wait until UTC 18th Feb where we'll get a fresh release and hopefully everything will be fixed tomorrow.

@Moult
Copy link
Contributor

Moult commented Feb 18, 2023

Fixed. Finally.

@Moult Moult closed this as completed Feb 18, 2023
@Andrej730
Copy link
Contributor Author

Shouldn't we keep it open for docker and conda readme? 👀

@Andrej730 Andrej730 reopened this Feb 18, 2023
@aothms
Copy link
Member

aothms commented Feb 18, 2023

I just copied our readme and desc to the docker hub page.

@Moult
Copy link
Contributor

Moult commented Feb 24, 2023

Ping @Krande

@Krande
Copy link
Contributor

Krande commented Feb 24, 2023

I don't have access to directly modify the conda-forge package of IfcOpenShell, so we'll have to fix that somehow in the next release on conda forge. I did however update the daily IfcOpenShell conda package description. Unfortunately the conda description field does not support markdown tables, so I had to convert the tables from markdown to html (with a little help from chatgpt :) ) from the README.md

image

@Moult
Copy link
Contributor

Moult commented Mar 5, 2023

Bump @aothms :)

@aothms
Copy link
Member

aothms commented Mar 5, 2023

I don't think there's anything I can do here?

@Moult
Copy link
Contributor

Moult commented Mar 5, 2023

I don't have access to directly modify the conda-forge package of IfcOpenShell, so we'll have to fix that somehow in the next release on conda forge.

^ @aothms is this not you? Or is it someone else?

@Krande
Copy link
Contributor

Krande commented Mar 5, 2023

@Moult it's just the way conda forge operates I believe. No one has admin access to conda forge packages on anaconda.org except the conda forge maintainers. Package descriptions are meant to be updated by users using their CI interface on github.

But I can issue a new conda forge release later today and try to see if I can update the readme!

@Moult
Copy link
Contributor

Moult commented Jun 30, 2023

Bump @Krande :)

@Krande
Copy link
Contributor

Krande commented Jun 30, 2023

@Moult ! Hey, thanks for reminding me :)

I got the readme all ready to go months ago, but I've had a really hard time with getting conda-forge to compile the latest releases of IfcOpenShell on linux. From what I can tell It seems the ci linux workers being used by azure pipelines (which is what conda-forge uses) AND github actions for that matter seems to regularly fail due to insufficient memory during the compilation.

I've started another build on conda forge hoping the workers might have made some stability improvements :)

@Krande
Copy link
Contributor

Krande commented Jun 30, 2023

@Moult and @aothms

Unfortunately, it seems that memory limits on the linux CI runners on both github actions and conda-forge (azure pipelines) are a limiting factor on our conda package deployments. Failing linux conda compilation jobs has for some reason become the normal.

Are there any things we could consider for the v0.8.0 release to reduce the memory footprint of our compilation? Say, for example if it is possible to split up the cmake compilation steps?

One thing that has crossed my mind is if it would make sense to split up the different operations in our current CMakeLists.txt into multiple *.cmake files. That way we have the option to create a separate CMakeLists.txt for conda that can produce separate builds or split the compilation somehow.

Would something like this make any sense to you?

- root/
   - cmake/
       - CMakeLists.txt
       - usd.cmake
       - gltf.cmake
       - wasm.cmake
       - opencascade.cmake
       - collada.cmake
       - hdf5.cmake
       - msvc.cmake
       - utilties.cmake  # various supporting functions 
       - etc.. 
   - conda/
       - CMakeLists.txt
       - meta.yaml

In our main cmake/CMakeLists.txt file we would then only need to include all the different *.cmake files (using the include("utilities.cmake") command) to compile everything as we do today. And in the conda/CMakeLists.txt we are free to either split up the conda ifcopenshell package into ifcopenshell-schema, ifcopenshell-geom etc by simply including the functions in the order we want to include them.

Any thoughts?

@aothms
Copy link
Member

aothms commented Jun 30, 2023

Are there any things we could consider for the v0.8.0 release to reduce the memory footprint of our compilation?

We should look at how the schema is compiled. Most other C++ libs do not have these monolithic schema includes, e.g https://github.com/ifcquery/ifcplusplus/blob/master/IfcPlusPlus/src/ifcpp/IFC4X3/include/IfcAdvancedFace.h

Breaking it up into small parts greatly reduces memory footprint, but at the expense of compilation time. It'll be much slower, because all the shared headers need to be constantly reevaluated. We should look into precompiled headers.

We should also revisit the latebound schema information https://github.com/IfcOpenShell/IfcOpenShell/blob/v0.7.0/src/ifcparse/Ifc4x3-schema.cpp Maybe this shouldn't be supplied as code, but as data (either a payload, or an external json file). Compilation adds no performance gain for this kind of data, but compilers don't like it.

@Krande
Copy link
Contributor

Krande commented Aug 11, 2023

Hey @Moult: I've successfully updated the conda-forge package for IfcOpenShell, meaning the README file is updated at https://anaconda.org/conda-forge/ifcopenshell.

@aothms I think I've also fixed the reoccurring failed github actions workers for the daily conda builds by reducing the number of IFC SCHEMA we compile for.

Basically I reduced the number of schema in our conda builds from:

"2x3" "4" "4x1" "4x2" "4x3_rc1" "4x3_rc2" "4x3_rc3" "4x3_rc4" "4x3" "4x3_tc1" "4x3_add1"
(which is the default)

to

"2x3" "4" "4x1" "4x3" "4x3_add1"

Now the build times are significantly reduced and it seems the memory usage is no longer breaking the ci runner caps.

Then we might be able to close this issue?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
Development

No branches or pull requests

4 participants