Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

setup.py: devtarget command to symlink src into target #33

Merged
merged 2 commits into from Oct 21, 2019

Conversation

manics
Copy link
Member

@manics manics commented Oct 9, 2019

Recreate "target" with symlinks to files in "src" to ease development
For example, pip install -e . will work

Currently if you edit a file under src you must reinstall the python module. If isntead you fisrt run python setup.py devtarget this will symlink files from src into target instead of the default copy, which means you can use pip install -e . to install the module as an editable module as long as you only edit existing files. If you add/remove files under src you will need to rerun these commands. Default beahaviour should be unchanged.

Recreate "target" with symlinks to files in "src" to ease development
For example, `pip install -e .` will work
@joshmoore
Copy link
Member

Traceback (most recent call last):
  File "setup.py", line 213, in <module>
    'devtarget': DevTargetCommand,
  File "/opt/anaconda/lib/python2.7/site-packages/setuptools/__init__.py", line 143, in setup
    return distutils.core.setup(**attrs)
  File "/opt/anaconda/lib/python2.7/distutils/core.py", line 151, in setup
    dist.run_commands()
  File "/opt/anaconda/lib/python2.7/distutils/dist.py", line 953, in run_commands
    self.run_command(cmd)
  File "/opt/anaconda/lib/python2.7/distutils/dist.py", line 972, in run_command
    cmd_obj.run()
  File "setup.py", line 151, in run
    copy_src_to_target(symlink=True)
  File "setup.py", line 118, in copy_src_to_target
    _relative_symlink_file(fromfile, tofile)
  File "setup.py", line 104, in _relative_symlink_file
    except FileExistsError:
NameError: global name 'FileExistsError' is not defined

@joshmoore joshmoore added this to In progress in OMERO.server 5.6.0 (Python 3) via automation Oct 21, 2019
@manics
Copy link
Member Author

manics commented Oct 21, 2019

Should be fixed for Python 2.7 and 3.6 now

@joshmoore
Copy link
Member

with devtarget

/opt/omero-py/target $ls -ltra
lrwxr-xr-x    1 jamoore  wheel      34 Oct 21 14:44 omero_model_TemperatureI.py -> ../src/omero_model_TemperatureI.py
lrwxr-xr-x    1 jamoore  wheel      40 Oct 21 14:44 omero_model_ElectricPotentialI.py -> ../src/omero_model_ElectricPotentialI.py
lrwxr-xr-x    1 jamoore  wheel      30 Oct 21 14:44 omero_model_DetailsI.py -> ../src/omero_model_DetailsI.py
lrwxr-xr-x    1 jamoore  wheel      34 Oct 21 14:44 omero_model_PermissionsI.py -> ../src/omero_model_PermissionsI.py
lrwxr-xr-x    1 jamoore  wheel      19 Oct 21 14:44 runTables.py -> ../src/runTables.py
lrwxr-xr-x    1 jamoore  wheel      30 Oct 21 14:44 omero_model_UnitBase.py -> ../src/omero_model_UnitBase.py
lrwxr-xr-x    1 jamoore  wheel      21 Oct 21 14:44 shellserver.py -> ../src/shellserver.py
lrwxr-xr-x    1 jamoore  wheel      15 Oct 21 14:44 path.pyc -> ../src/path.pyc
lrwxr-xr-x    1 jamoore  wheel      22 Oct 21 14:44 runProcessor.py -> ../src/runProcessor.py
lrwxr-xr-x    1 jamoore  wheel      19 Oct 21 14:44 IceImport.py -> ../src/IceImport.py
lrwxr-xr-x    1 jamoore  wheel      23 Oct 21 14:44 omero_version.py -> ../src/omero_version.py
lrwxr-xr-x    1 jamoore  wheel      28 Oct 21 14:44 omero_model_PowerI.py -> ../src/omero_model_PowerI.py
lrwxr-xr-x    1 jamoore  wheel      31 Oct 21 14:44 omero_model_PressureI.py -> ../src/omero_model_PressureI.py
lrwxr-xr-x    1 jamoore  wheel      24 Oct 21 14:44 omero_version.pyc -> ../src/omero_version.pyc
lrwxr-xr-x    1 jamoore  wheel      31 Oct 21 14:44 omero_sys_ParametersI.py -> ../src/omero_sys_ParametersI.py
lrwxr-xr-x    1 jamoore  wheel      21 Oct 21 14:44 omero_setup.py -> ../src/omero_setup.py
lrwxr-xr-x    1 jamoore  wheel      29 Oct 21 14:44 omero_model_LengthI.py -> ../src/omero_model_LengthI.py
lrwxr-xr-x    1 jamoore  wheel      28 Oct 21 14:44 .omero_version.py.un~ -> ../src/.omero_version.py.un~
lrwxr-xr-x    1 jamoore  wheel      14 Oct 21 14:44 path.py -> ../src/path.py
lrwxr-xr-x    1 jamoore  wheel      32 Oct 21 14:44 omero_model_FrequencyI.py -> ../src/omero_model_FrequencyI.py
lrwxr-xr-x    1 jamoore  wheel      27 Oct 21 14:44 omero_model_TimeI.py -> ../src/omero_model_TimeI.py
drwxr-xr-x  428 jamoore  wheel   13696 Oct 21 14:44 .
drwxr-xr-x   16 jamoore  wheel     512 Oct 21 14:44 omero_ext
drwxr-xr-x   40 jamoore  wheel    1280 Oct 21 14:44 omero

and without ✅

-rw-r--r--    1 jamoore  wheel    7637 Oct 21 14:46 omero_model_PermissionsI.py
-rw-r--r--    1 jamoore  wheel    1264 Oct 21 14:46 runTables.py
-rw-r--r--    1 jamoore  wheel    1169 Oct 21 14:46 omero_model_UnitBase.py
-rwxr-xr-x    1 jamoore  wheel    3336 Oct 21 14:46 shellserver.py
-rw-r--r--    1 jamoore  wheel   50551 Oct 21 14:46 path.pyc
-rw-r--r--    1 jamoore  wheel     432 Oct 21 14:46 runProcessor.py
-rw-r--r--    1 jamoore  wheel     441 Oct 21 14:46 IceImport.py
-rw-r--r--    1 jamoore  wheel      75 Oct 21 14:46 omero_version.py
-rw-r--r--    1 jamoore  wheel   53603 Oct 21 14:46 omero_model_PowerI.py
-rw-r--r--    1 jamoore  wheel  135289 Oct 21 14:46 omero_model_PressureI.py
-rw-r--r--    1 jamoore  wheel   10251 Oct 21 14:46 omero_sys_ParametersI.py
-rwxr-xr-x    1 jamoore  wheel    3260 Oct 21 14:46 omero_setup.py
-rw-r--r--    1 jamoore  wheel  131835 Oct 21 14:46 omero_model_LengthI.py
-rw-r--r--    1 jamoore  wheel    4589 Oct 21 14:46 .omero_version.py.un~
-rw-r--r--    1 jamoore  wheel   51114 Oct 21 14:46 path.py
-rw-r--r--    1 jamoore  wheel   58317 Oct 21 14:46 omero_model_FrequencyI.py
-rw-r--r--    1 jamoore  wheel   70734 Oct 21 14:46 omero_model_TimeI.py

(Tested on Python 2.7.13)

Waiting on travis, but then I'd say let's get this in. Might be time to start collecting the dev workflow directly in the README.

@snoopycrimecop snoopycrimecop mentioned this pull request Oct 21, 2019
Merged
@joshmoore joshmoore merged commit c96806d into ome:master Oct 21, 2019
OMERO.server 5.6.0 (Python 3) automation moved this from In progress to Done Oct 21, 2019
@manics manics deleted the setup-devtarget branch October 21, 2019 16:48
@joshmoore joshmoore added this to the 5.6.0 milestone Mar 17, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
No open projects
Development

Successfully merging this pull request may close these issues.

None yet

2 participants