python-rope / ropemode

Common parts of ropemacs and ropevim.
GNU Lesser General Public License v3.0
15 stars 12 forks source link

make ropemode easy_installable #2

Closed mcepl closed 10 years ago

mcepl commented 10 years ago

Hi,

Rope/Ropemacs etc was mentioned in an article in python magazine last month about using emacs as a python ide. A starter kit was published with directions on how to install rope/ropemacs and the little caveat about making a symlink of ropemode inside ropemacs so that python setup.py install worked seemed a little odd to me.

Tonight I was trying to replicate my sweet setup to another machine and was reminded that this manual step was there so I decided to get a patch together that would eliminate that step.

The patch is attached, nothing special. If you put it in, then on the ropemacs side ropemode could be referenced as required and the distribute/pip/setuptools machinery can take care of pulling all 3 down at once and setting them up for the user.

In other words....

easy_install ropemacs

could be possible.

https://gist.github.com/mcepl/7741459

mcepl commented 10 years ago

Hi,

The reason for separating ropemode is both ropemacs and ropemode use it. But after separating it I decided to put it inside ropevim and ropemacs's released packages rather than creating a separate package to reduce the number of packages user needs to install. But I'm not sure if how much it helps, specially given that many of rope users use the hg version of rope.

@aligrudi what do you think?

Anyway, thanks for the patch. But if @aligrudi decides to create a seperate package for ropemode, the patch needs minor modification. See rope/setup.py; it uses setuptools only if it is available.

Thanks.

mcepl commented 10 years ago

Hi,

I think that making ropemacs/ropevim easy_install'able is good idea. And if so the necessity of inlining ropemode in them will be at least questionable.

By the way imo resolving of this issue should be delayed while the new releases will be ready...

mcepl commented 10 years ago

i think from a consistency standpoint since rope and ropemacs both can be installed via "python setup.py install" it's a good idea to make ropemode that way too since it's a dependency and there's nothing technically challenging about making it that way. Timing wise, I don't think it's that critical that it can't wait till after a release. To me it just seemed an easy way to "give something back" to code I use.

If I can be of any help feel free to ping me on bitbucket

Thanks

mcepl commented 10 years ago

Thanks Tom. If ropemode finds it own package, it would be great you update your patch to use distutils when setuptools is not available.

Anyway, angri, through the feedback I see, I guess many of rope* users use the repository versions. So I'm wondering if we can change our release policy to make it quite simple; probably a single python setup.py upload? Then we can release very frequently and increase the minor number with every little interesting change. That way distributions, like debian and ubuntu which ship rope*, and users that prefer released packages would get updated much more quickly. Also we'll get rid of the sf.net junk.

The only difficulty is updating the homepage and then we can announce it in the mailing list. Also if we want to put ropemode in a separate package we should update ropevim and ropemacs docs and the homepage (patches are welcome).

I think you have the correct pypi permissions. As an experiment would you release rope-0.9.3 and ropevim-0.3 on pypi (if you expect something to go wrong append a '-rc' postfix to the releases). If everything goes well we can:

  1. apply Tom's patch to ropemode (with distutils support if setuptools is not available)
  2. release ropemode on pypi too
  3. updating the homepage with a highlighted note that we are no longer releasing on sf.net and updating the download url. I can do it, if you prefer so.
  4. announce the release and the new download location (I think http://pypi.python.org/pypi/rope*/ suffies as download url).

And after these steps we can have releases like rope-0.9.16 or ropemode-0.23 that contain bugfixes or minor features.

What do you think?

mcepl commented 10 years ago

I'll be glad to make a release but I'd like to get some things done... Right now there is only two patches in my local environment which are not in mainline yet: one for rope and one for ropevim. Finally I've prepared them for review and sent in "Please help with autoimport" thread in rope-dev maillist.

I agree with your proposals about release process. And it is a good idea to make a -rc release to start.

mcepl commented 10 years ago

OK, well I can either attach another patch to this issue, or or if you want to ping me as you get closer to release and I can submit it then. Just let me know.

mcepl commented 10 years ago

Here is the instructions for updating the homepage. It is generated using docutils. All files except index.txt are inside the repositories. This simple script creates the pages:

# fetch index.txt; I've already fixed the download link
# wget http://rope.sf.net/index.txt

cp path/to/rope*/docs/*.txt .

# buildhtml.py is in docutils package;
# makes easy to convert a lot of htmls
python buildhtml.py

But some of the docs need to be fixed before creating the htmls:

Then upload the changes:

$ sftp angri,rope@web.sf.net
sftp> cd htdocs
sftp> put *.html
sftp> quit

Thanks.

mcepl commented 10 years ago

i see that you guys already added the setup.py and all the settings. awesome.

mcepl commented 10 years ago

I don't see anything in this ticket, which wouldn't be resolved already. If anybody disagrees, please, reopen with pointing out unresolved issues.