Make bob, bob again!
:) it means we want to remove this idea of core and extra packages and make everything a part of bob.
To do so we need:
- Make sure bob is only a meta package (both in PyPI and conda) with only optional dependencies.
- Bob will (optionally) depend on all core and extra packages. There will be no concept of core and extra packages anymore.
- We will still use semantic versioning in Bob and follow semantic versioning. This means with every release, we could easily be releasing a new major version of Bob: bob 4, bob 5, bob 6
- We could remove bob/bob.nightlies and bob/docs repositories as well and do everything here.
- Since the bob package is not going to install anything, we could potentially list private stable packages here too. However, I am not sure we can build the docs here then.
Here is the idea for its conda recipe at least:
{% set name = 'bob' %}
{% set project_dir = environ.get('RECIPE_DIR') + '/..' %}
package:
name: {{ name }}
version: {{ environ.get('BOB_PACKAGE_VERSION', '0.0.1') }}
build:
number: {{ environ.get('BOB_BUILD_NUMBER', 0) }}
run_exports:
- {{ pin_subpackage(name) }}
script:
- cd {{ project_dir }}
{% if environ.get('BUILD_EGG') %}
- python setup.py sdist --formats=zip
{% endif %}
- python setup.py install --single-version-externally-managed --record record.txt
requirements:
run:
- python {{ python }}
- setuptools {{ setuptools }}
- bob.extension
- bob.blitz
...
- bob.ip.flandmark
- bob.bio.base
...
- gridtk
- bob.pad.voice
...
- bob.buildout # even bob.buildout
test:
imports:
- {{ name }}
commands:
- nosetests --with-coverage --cover-package={{ name }} -sv {{ name }}
- conda inspect linkages -p $PREFIX {{ name }} # [not win]
- conda inspect objects -p $PREFIX {{ name }} # [osx]
requires:
- bob-devel {{ bob_devel }}.*
- nose
- coverage
- sphinx
- sphinx_rtd_theme
- pkgtools
- cmake
- pkg-config
- freetype
- {{ compiler('c') }}
- {{ compiler('cxx') }}
- bob.buildout
...
Then we run conda render
, and create a new recipe based on that while converting run
to run_constrained
. I have explained this in https://gitlab.idiap.ch/bob/bob.conda/issues/46#note_25677
Edited by Amir MOHAMMADI