|
| 1 | +======================== |
| 2 | +openalea.deploy |
| 3 | +======================== |
| 4 | + |
| 5 | +.. {# pkglts, doc |
| 6 | +
|
| 7 | +
|
| 8 | +.. image:: https://badge.fury.io/py/openalea.deploy.svg |
| 9 | + :alt: PyPI version |
| 10 | + :target: https://badge.fury.io/py/openalea.deploy |
| 11 | + |
| 12 | +.. #} |
| 13 | +
|
| 14 | +OpenAlea.Deploy support the installation of OpenAlea packages via the network and manage their dependencies. It is an extension of Setuptools. |
| 15 | + |
| 16 | +**Authors** : S. Dufour-Kowalski, C. Pradal |
| 17 | + |
| 18 | +**Contributors** : OpenAlea Consortium |
| 19 | + |
| 20 | +**Institutes** : INRIA/CIRAD/INRA |
| 21 | + |
| 22 | +**Type** : Pure Python package |
| 23 | + |
| 24 | +**Status** : Devel |
| 25 | + |
| 26 | +**License** : CeCILL-C |
| 27 | + |
| 28 | + |
| 29 | +About |
| 30 | +------ |
| 31 | + |
| 32 | +OpenAlea.Deploy support the installation of OpenAlea packages via the network and manage |
| 33 | +their dependencies . |
| 34 | +It is an extension of Setuptools_. |
| 35 | + |
| 36 | + |
| 37 | + |
| 38 | +**Additional Features** : |
| 39 | + * Discover and manage packages in EGG format |
| 40 | + * Declare shared libraries directory and include directories |
| 41 | + * Call SCons scripts |
| 42 | + * Create namespaces if necessary |
| 43 | + * Support post_install scripts |
| 44 | + * Support 'develop' command |
| 45 | + * OpenAlea GForge upload |
| 46 | + |
| 47 | +It doesn't include any GUI interface (See [[packages:compilation_installation:deploygui:deploygui|OpenAlea.DeployGui]] for that). |
| 48 | + |
| 49 | +Requirements |
| 50 | +------------- |
| 51 | + |
| 52 | + * Python_ <= 2.7 |
| 53 | + * Setuptools_ |
| 54 | + |
| 55 | +Download |
| 56 | +--------- |
| 57 | + |
| 58 | +See the [[:download|Download page]]. |
| 59 | + |
| 60 | +Installation |
| 61 | +------------- |
| 62 | + |
| 63 | + python setup.py install |
| 64 | + |
| 65 | +.. note:: |
| 66 | + |
| 67 | + OpenAlea.Deploy can be automatically installed with the *alea_setup.py* script. |
| 68 | + |
| 69 | + |
| 70 | +.. _Setuptools: http://pythonhosted.org/setuptools |
| 71 | +.. _Python: http://www.python.org |
| 72 | + |
| 73 | + |
| 74 | +Developper Documentation |
| 75 | +------------------------- |
| 76 | + |
| 77 | +To distribute your package with OpenAlea.Deploy, you need to write a setup.py script |
| 78 | +as you do with setuptools. |
| 79 | + |
| 80 | + * have a look to the Setuptools_ developer's guide. |
| 81 | + * OpenAlea.Deploy add a numerous of keywords and commands |
| 82 | + |
| 83 | +Setup keywords |
| 84 | +############### |
| 85 | + |
| 86 | + * create_namespace = [True|False] : if **True** create the namespaces in *namespace_packages* |
| 87 | + * scons_scripts = [list of Scons scripts] : if not empty, call scons to build extensions |
| 88 | + * scons_parameters = [list of Scons parameters] : such as ``build_prefix=...`` |
| 89 | + * postinstall_scripts = [list of strings] : Each string corresponds to a python module to execute at installation time. The module may contain a install function ``def install():``. |
| 90 | + * inc_dirs = {dict of dest_dir:src_dir} : Dictionary to map the directory containing the header files. |
| 91 | + * lib_dirs = {dict of dest_dir:src_dir} : Dictionary to map the directory containing the dynamic libraries to share. |
| 92 | + * share_dirs = {dict of dest_dir:src_dir} : Dictionary to map the directory containing shared data. |
| 93 | + |
| 94 | +Additional setup.py commands |
| 95 | +############################# |
| 96 | + |
| 97 | + * *create_namespace* : create_namespace declared in *namespace_packages*, usage : ``python setup.py create_namespace``. |
| 98 | + * *scons* : call scons scripts, usage : ``python setup.py scons``. |
| 99 | + * *alea_install* : wrap easy_install command, usage : ``python setup.py alea_install``. |
| 100 | + * *alea_upload* : upload distribution forge on the openalea gforge |
| 101 | + |
| 102 | +For more information see : ``python setup.py --help-commands`` |
| 103 | + |
| 104 | +Setup.py example |
| 105 | +################# |
| 106 | + |
| 107 | +:: |
| 108 | + |
| 109 | + import sys |
| 110 | + import os |
| 111 | + from setuptools import setup, find_packages |
| 112 | + from os.path import join as pj |
| 113 | + |
| 114 | + build_prefix = "build-scons" |
| 115 | + |
| 116 | + # Setup function |
| 117 | + setup( |
| 118 | + name = "OpenAlea.FakePackage", |
| 119 | + version = "0.1", |
| 120 | + author = "Me", |
| 121 | + author_email = "me@example.com", |
| 122 | + description = "This is an Example Package", |
| 123 | + license = 'GPL', |
| 124 | + keywords = 'fake', |
| 125 | + url = 'http://myurl.com', |
| 126 | + |
| 127 | + # Scons |
| 128 | + scons_scripts = ["SConstruct"], |
| 129 | + scons_parameters = ["build_prefix=%s"%(build_prefix)], |
| 130 | + |
| 131 | + # Packages |
| 132 | + namespace_packages = ["openalea"], |
| 133 | + create_namespaces = True, |
| 134 | + packages = ['openalea.fakepackage', ], |
| 135 | + |
| 136 | + package_dir = { |
| 137 | + 'openalea.fakepackage': pj('src','fakepackage'), |
| 138 | + '' : 'src', # necessary to use develop command |
| 139 | + }, |
| 140 | + include_package_data = True, |
| 141 | + zip_safe= False, |
| 142 | + |
| 143 | + # Specific options of openalea.deploy |
| 144 | + lib_dirs = { 'lib' : pj(build_prefix, 'lib'), }, |
| 145 | + inc_dirs = { 'include' : pj(build_prefix, 'include') }, |
| 146 | + share_dirs = { 'share' : 'share' }, |
| 147 | + postinstall_scripts = ['openalea.fakepackage.postinstall',], |
| 148 | + |
| 149 | + # Scripts |
| 150 | + entry_points = { 'console_scripts': [ |
| 151 | + 'fake_script = openalea.fakepackage.amodule:console_script', ], |
| 152 | + 'gui_scripts': [ |
| 153 | + 'fake_gui = openalea.fakepackage.amodule:gui_script',]}, |
| 154 | + |
| 155 | + # Dependencies |
| 156 | + setup_requires = ['openalea.deploy'], |
| 157 | + dependency_links = ['http://openalea.gforge.inria.fr/pi'], |
| 158 | + #install_requires = [], |
| 159 | + |
| 160 | + ) |
| 161 | + |
| 162 | + |
| 163 | + |
| 164 | + |
| 165 | + |
| 166 | + |
| 167 | + |
| 168 | + |
| 169 | +OpenAlea.Deploy 2.0.0 |
| 170 | +--------------------- |
| 171 | + |
| 172 | +- add VirtualEnv and Conda compatibility and detection |
| 173 | + |
| 174 | +OpenAlea.Deploy 0.9.0 |
| 175 | +--------------------- |
| 176 | + |
| 177 | +- add bdist_rpm options |
| 178 | + |
| 179 | +OpenAlea.Deploy 0.8.0 |
| 180 | +--------------------- |
| 181 | + |
| 182 | +**Revision 2194** |
| 183 | + |
| 184 | +- add add_plat_name option in setuptools |
| 185 | +- Add Sphinx documentation in ./doc and update the setup.cfg accordingly |
| 186 | + |
| 187 | +OpenAlea.Deploy 0.7.0 |
| 188 | +--------------------- |
| 189 | + |
| 190 | +**Revision xxxx** |
| 191 | + |
| 192 | +- add pylint option in setuptools |
| 193 | +- add sphinx_upload option in setuptools |
| 194 | +- add DYLD_LIBRARY_PATH to deploy config file |
| 195 | +- update documentation |
| 196 | + - Fixes docstrings to make them compatible with sphinx, or have a nicer output |
| 197 | + - fixes indentation issues in binary_deps and gforge_utils |
| 198 | + - fixes coding conventions |
| 199 | + - a few typos |
| 200 | + - remove some warnings |
| 201 | + - Fixed bad indentation |
| 202 | + |
| 203 | +OpenAlea.Deploy 0.6.2 |
| 204 | +--------------------- |
| 205 | + |
| 206 | +**Revision 1575** |
| 207 | + |
| 208 | +- add clean command to incorporate scons into setup.py |
| 209 | +- Port to Mac |
| 210 | +- Fix documentation (docstrings) to remove warnings in epydoc: |
| 211 | + http://openalea.gforge.inria.fr/doc/deploy-0.6.0/ |
| 212 | +- Fix tests |
| 213 | +- Upgrade setuptools to 0.6c9 |
| 214 | +- Fix PATH problem on Windows to take into account OpenAlea libraries. |
| 215 | +- Version are now compared with pkg_resources |
| 216 | + |
| 217 | +OpenAlea.Deploy 0.4.12 |
| 218 | +---------------------- |
| 219 | +- Fix PATH problem on Windows to take into account OpenAlea libraries. |
| 220 | + |
| 221 | +OpenAlea.Deploy 0.4.11 |
| 222 | +---------------------- |
| 223 | +- Fix version comparison by using parse_version rather than lexical cmp. |
| 224 | + |
| 225 | +OpenAlea.Deploy 0.4.9 |
| 226 | +--------------------- |
| 227 | +- add binary dependency declaration in binray_deps.py |
| 228 | + |
| 229 | +OpenAlea.Deploy 0.4.8 |
| 230 | +--------------------- |
| 231 | +- Fix upload for big files |
| 232 | + |
| 233 | +OpenAlea.Deploy 0.4.7 |
| 234 | +--------------------- |
| 235 | +- Add remove_package and remove_release in gforge.py |
| 236 | + |
| 237 | +OpenAlea.Deploy 0.4.6 |
| 238 | +--------------------- |
| 239 | +- Add get_metainfo function |
| 240 | + |
| 241 | +OpenAlea.Deploy 0.4.5 |
| 242 | +--------------------- |
| 243 | +- Fix alea_clean Bug (remove all site-package) |
| 244 | + |
| 245 | +OpenAlea.Deploy 0.4.4 |
| 246 | +--------------------- |
| 247 | +- Fix bug with os.environ['PATH'] under windows |
| 248 | + |
| 249 | +OpenAlea.Deploy 0.4.3 |
| 250 | +--------------------- |
| 251 | +- Fix bug with namespace creation and complex __init__.py |
| 252 | + |
| 253 | +OpenAlea.Deploy 0.4.2 |
| 254 | +--------------------- |
| 255 | +- Add <alea_upload> command (GForge upload) |
| 256 | +- Add gforge module (SOAP communication) |
| 257 | +- Fix dyn-lib bug with virtual env and with relative path |
| 258 | +- Add option to alea_config to print dyn-lib |
| 259 | + |
| 260 | +OpenAlea.Deploy 0.4.1 |
| 261 | +--------------------- |
| 262 | +- Fix bug with <develop> command and namespaces |
| 263 | + |
| 264 | +OpenAlea.Deploy 0.4.0 |
| 265 | +--------------------- |
| 266 | +- Improve <develop> command : manage namespace and environment variables |
| 267 | +- Reinstall shared libraries if they are missing (but not egm) |
| 268 | +- Add shell command : alea_clean, alea_config and alea_update |
| 269 | +- Based on setuptools-0.6c8 |
| 270 | + |
| 271 | +OpenAlea.Deploy 0.3.8 |
| 272 | +--------------------- |
| 273 | +- Adapt develop command for lib_dir and bin_dir |
| 274 | + |
| 275 | +OpenAlea.Deploy 0.3.7 |
| 276 | +--------------------- |
| 277 | +- Simplify the warning message for environment variable on Linux |
| 278 | + |
| 279 | +OpenAlea.Deploy 0.3.6 |
| 280 | +--------------------- |
| 281 | +- add get_recommended_pkg functions |
| 282 | + |
| 283 | +OpenAlea.Deploy 0.3.5 |
| 284 | +--------------------- |
| 285 | +- add alea_clean and alea_update_all scripts |
| 286 | + |
| 287 | +OpenAlea.Deploy 0.3.4a |
| 288 | +---------------------- |
| 289 | +- Fix platform detection for darwin |
| 290 | + |
| 291 | +OpenAlea.Deploy 0.3.3 |
| 292 | +--------------------- |
| 293 | +- Execute build_ext before build_py |
| 294 | + |
| 295 | +OpenAlea.Deploy 0.3.2 |
| 296 | +--------------------- |
| 297 | +- Manage a list of web repository |
| 298 | + |
| 299 | +OpenAlea.Deploy 0.3 |
| 300 | +------------------- |
| 301 | +- Manage a directory of shared lib |
| 302 | + |
| 303 | + |
| 304 | + |
0 commit comments