Skip to content

GitLab

  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • bob bob
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 2
    • Issues 2
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • bob
  • bobbob
  • Issues
  • #249

Closed
Open
Created Mar 13, 2018 by Amir MOHAMMADI@amohammadiOwner

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 Mar 14, 2018 by Amir MOHAMMADI
Assignee
Assign to
Time tracking