Coder Social home page Coder Social logo

nsls2-conda-envs / conda-pack-template Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 6.0 556 KB

Generate and package conda environments

Home Page: https://nsls2-conda-envs.github.io/conda-pack-template

License: BSD 3-Clause "New" or "Revised" License

Jinja 18.04% Python 63.55% Shell 18.40%

conda-pack-template's People

Contributors

giorosario avatar junaishima avatar mrakitin avatar vshekar avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

conda-pack-template's Issues

Zenodo upload to the existing deposition

As mentioned in #17 (review), we need to update the code so that it can upload to the existing deposition when a new version of an environment is generated.

Checklist:

  • a link to the deposition that was automatically created via CI that contains a new version of n2sn v0.3.7.

Issues with pyepics finding libca

With a 2021-1.2 environment

[tcaswell@xf28id2-srv1 ~]$ conda activate /opt/bluesky/qserver/conda_envs/qserver-collection-2021-1.2/(/opt/bluesky/qserver/conda_envs/qserver-collection-2021-1.2) [tcaswell@xf28id2-srv1 ~]$ conda list | grep -i epic
epics-base                7.0.4                h68659b9_0    nsls2forge
pyepics                   3.4.3                    py37_0    nsls2forge

Trying to import pyepics will eventually fail with:

(/opt/bluesky/qserver/conda_envs/qserver-collection-2021-1.2) [tcaswell@xf28id2-srv1 ~]$ ipython
impPython 3.7.7 (default, Mar 26 2020, 15:48:22) 
Type 'copyright', 'credits' or 'license' for more information
IPython 7.21.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import epics.ca

In [2]: epics.ca.find_libca()
---------------------------------------------------------------------------
ChannelAccessException                    Traceback (most recent call last)
<ipython-input-2-476db334b910> in <module>
----> 1 epics.ca.find_libca()

/opt/bluesky/qserver/conda_envs/qserver-collection-2021-1.2/lib/python3.7/site-packages/epics/ca.py in find_libca()
    331 
    332 def find_libca():
--> 333     return _find_lib('ca')
    334 
    335 def find_libCom():

/opt/bluesky/qserver/conda_envs/qserver-collection-2021-1.2/lib/python3.7/site-packages/epics/ca.py in _find_lib(inp_lib_name)
    327         return dllpath
    328 
--> 329     raise ChannelAccessException('cannot find Epics CA DLL')
    330 
    331 

ChannelAccessException: cannot find Epics CA DLL

Debugging this, the search path for pyepics ad-hoc library search path does not include where the epics libraries actually are (the underlying bug here is that pyepics re-implements library discovery but unfortunately that is not actually fixable upstream). A work-around is to do

export PYEPICS_LIBCA=/opt/bluesky/qserver/conda_envs/qserver-collection-2021-1.2/epics/lib/linux-x86_64/libca.so

before starting IPython, but this is obviously not a generalizable solution.

It is possible that this will need to be addressed in the CF builds of either pyepics or epics-base.

Enhancements to `zenodo_uploader.py`

It would be great to implement the code to cover the following:

  • check if the deposition with the same name exists and create a version of it rather than creating a new deposition
  • upload all 3 files, not only one .tar.gz, e.g.:
    • n2sn-sha256sum.txt
    • n2sn.tar.gz
    • n2sn.yml
  • add an option to not publish, but still, deposit files
  • check if ZENODO_ACCESS_TOKEN is empty/undefined, and exit immediately (I observed the case in the CI when the token wasn't defined, and the code actually hit the Zenodo server and got 401 error code; we better check the token in the very beginning before attempting to communicate with the server).

Please use this manual deposition as an example of what we’d like to expect: https://zenodo.org/record/4421838. That one is used in the profile_collection CI.

xpdan >=0.8.2

Currently, the version conda picked for us is 0.5.2 (observed during the deployment visit).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.