Skip to main content

ejpm

ejpm stands for eJANA packet manager helper

The goal of ejpm is to provide easy experience of:

  • installing eJANA reconstruction framework and supporting packages
  • uify installation in different environments: various operating systems, docker images, etc.

The secondary goal is to help users with e^JANA plugin development cycle.

The reason

why ejpm is here (and a pain, it tries to resolve) - is that there is no standard convention in our field of how all dependent packages are installed. Some packages (like eigen, xerces, etc.) are usually supported by OS maintainers, while others (Cern ROOT, Geant4) are usually built by users or other packet managers and could be located anywhere.

It should be as easy as:

> ejpm find all            # try to automatically find dependent packets
> ejpm --top-dir=/opt/eic  # set where to install missing packets
> ejpm install all         # build and install missing packets

It also gives a possibility to fine control over dependencies

> ejpm set root /opt/root6_04_16  # manually add cern ROOT location to use
> ejpm rebuild jana && ejpm rebuild ejana  # rebuild packets after it 

What ejpm is not:

  1. It is not a real package manager, which automatically solves dependencies
  2. ejpm is not a requirment for eJANA. It is not a part of eJANA build system and one can compile and install eJANA without ejpm
  • A database stores the current state of installation and location of stored packets.
  • Package installation contexts holds information of configuration and steps needed to install a package
  • CLI (command line interface)- provides users with commands to manipulate packets

Users are pretty much encouraged to change the code and everything is done here to be user-change-friendly

Installation

Regular:

pip install ejpm

Regular + JLab certs problems:

There could be problems on JLab machines (details are in the end):

python -m pip install --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --trusted-host pypi.org --install ejpm

Manual:

TL;DR; Get EJPM, install requirements, ready:

git clone https://gitlab.com/eic/ejpm.git
pip install -r ejpm/requirements.txt
python ejpm/run_ejpm.py

'ejpm' command:

Calling python <path to ejpm>/run_ejpm.py is inconvenient! It is easy to add alias to your .bashrc (or whatever)

alias ejpm='python <path to ejpm>/run_ejpm.py'

So if you just cloned it copy/paste:

echo "alias='python `pwd`/ejpm/run_ejpm.py'" >> ~/.bashrc

requirments:

Click and appdirs are the only requirements. If you have pip do:

pip install Click appdirs

If for some reason you don't have pip, you don't know python well enough and don't want to mess with it, pips, shmips and doh... Just download and add to PYTHONPATH: this 'click' folder and some folder with appdirs.py

Environment

EJPM_DATA_PATH - sets the path where the configuration db.json and env.sh, env.csh are located

JLab certificate problems

If you get errors like:

Retrying (...) after connection broken by 'SSLError(SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED]...

The problem is that pip is trustworthy enough to use secure connection to get packages. And JLab is helpful enough to put its root level certificates in the middle.

  1. The easiest solution is to continue use pip declaring PiPy sites as trusted:
    python -m pip install --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --trusted-host pypi.org --install ejpm
    
  2. Or to permanently add those sites as trusted in pip.config
    [global]
    trusted-host=
        pypi.python.org
        pypi.org
        files.pythonhosted.org
    
    (The link where to find pip.config on your system)
  3. You may want to be a hero and kill the dragon. The quest is to take JLab certs. Then Convert them to pem. Then add certs to pip. Then check it really works on JLab machines. And bring the dragon's head back (i.e. please, add the exact instruction to this file)

Release files for ejpm 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ejpm 0.0.1
File Size Uploaded
ejpm-0.0.1.tar.gz 21.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ejpm 0.0.1
File Interpreter ABI Platform
ejpm-0.0.1-py2-none-any.whl Python 2 none any Details

Total release size: 54.3 kB

Release files / ejpm-0.0.1.tar.gz

Download URL ejpm-0.0.1.tar.gz
Size 21.3 kB
Tags Source
SHA-256 checksum
How to use checksums
48c3d409c490cb60631137841e0ef846dfc3fc5f6deb2bfee4bbd35cb958d9cd
BLAKE2b-256 checksum
How to use checksums
15537d7282acb098d264da1fd2a29bce1f2eb17b299324f3aa22586f69277bd5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/2.7.5

Release files / ejpm-0.0.1-py2-none-any.whl

Download URL ejpm-0.0.1-py2-none-any.whl
Size 33.0 kB
Tags Python 2
SHA-256 checksum
How to use checksums
604e97f0e6146cb2d8abdb9513baf95a841551b42dd8ee4ce3070bb667c67abc
BLAKE2b-256 checksum
How to use checksums
179b0929eac8799e661dfde4438aac443ab1cb09c77fbf427ac1284041a06023
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/2.7.5

Release history Release notifications | RSS feed

0.3.53

2 release files

0.3.51

2 release files

0.3.50

2 release files

0.3.48

2 release files

0.3.47

2 release files

0.3.46

2 release files

0.3.45

2 release files

0.3.44

2 release files

0.3.43

2 release files

0.3.42

2 release files

0.3.40

2 release files

0.3.36

2 release files

0.3.34

2 release files

0.3.33

2 release files

0.3.32

2 release files

0.3.31

2 release files

0.3.30

2 release files

0.3.21

3 release files

0.3.20

3 release files

0.3.19

3 release files

0.3.17

3 release files

0.3.16

3 release files

0.3.15

3 release files

0.3.14

2 release files

0.3.13

3 release files

0.3.12

3 release files

0.3.11

3 release files

0.3.10

3 release files

0.3.8

3 release files

0.3.7

2 release files

0.3.6

3 release files

0.3.5

3 release files

0.3.4

3 release files

0.3.3

3 release files

0.3.1

2 release files

0.2.15

2 release files

0.2.14

2 release files

0.2.12

2 release files

0.2.11

2 release files

0.2.10

2 release files

0.2.8

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.38

2 release files

0.1.37

2 release files

0.1.33

2 release files

0.1.32

2 release files

0.1.31

2 release files

0.1.30

2 release files

0.1.28

2 release files

0.1.27

2 release files

0.1.26

2 release files

0.1.24

2 release files

0.1.23

2 release files

0.1.19

2 release files

0.1.18

2 release files

0.1.17

2 release files

0.1.16

2 release files

0.1.15

2 release files

0.1.14

2 release files

0.1.13

2 release files

0.1.12

2 release files

0.1.11

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.1

2 release files

0.0.40

2 release files

0.0.39

2 release files

0.0.37

2 release files

0.0.36

2 release files

0.0.35

2 release files

0.0.27

2 release files

0.0.25

2 release files

0.0.24

2 release files

0.0.23

2 release files

0.0.22

2 release files

0.0.21

2 release files

0.0.20

2 release files

0.0.19

2 release files

0.0.10

3 release files

0.0.9

3 release files

0.0.8

3 release files

0.0.7

3 release files

0.0.6

2 release files

0.0.5

3 release files

0.0.4

2 release files

This release

0.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page