Giter Site home page Giter Site logo

First release about lasagne HOT 46 CLOSED

lasagne avatar lasagne commented on May 12, 2024
First release

from lasagne.

Comments (46)

avdnoord avatar avdnoord commented on May 12, 2024

For the first release I think this would be an ideal moment to consider moving this repository to an organization (#38). As more people start contributing, Lasagne won't be a personal project anymore.

from lasagne.

f0k avatar f0k commented on May 12, 2024

+1 for considering moving it in time for the first release! (We can have another vote for an organization name then, hooray :) Just kidding.)

/edit: About things to do before releasing it: We should have docstrings and full test coverage, yes, and we should be sure the API won't change in incompatible ways. A release is also a commitment to the interface.

from lasagne.

benanne avatar benanne commented on May 12, 2024

We have less than a month left to get our first release ready at this point. Looking at the milestone, we're doing pretty well in the code department, with all necessary changes either having been carried out or at least planned. So the codebase should be ready soon. The main thing we still lack is complete API documentation, as well as something that can pass as a user guide for now :) At the very least we should have complete API docs and a rudimentary 'getting started' guide ready before we put this on PyPI.

What does everyone's schedule look like for the coming weeks? I realise the ISMIR deadline is around the same time, but I think we should all set aside some time to fill up holes in the docs.

from lasagne.

f0k avatar f0k commented on May 12, 2024

What does everyone's schedule look like for the coming weeks? I realise the ISMIR deadline is around the same time, but I think we should all set aside some time to fill up holes in the docs.

Yes, the ISMIR deadline is slowly approaching. But I agree that we should start documenting things that we know won't change. And we should fix a documentation format and convert the documentation. What was the state on that? Did we agree to move to numpy's format?

from lasagne.

benanne avatar benanne commented on May 12, 2024

Yep, we agreed to switch to numpydoc in the dev meeting earlier this month. We didn't assign anyone to the task of converting the existing documentation though :p I guess it's pretty unrewarding work. I may end up doing it later this week as a form of procrastination, but if anyone else wants to do it that would be great (and I might get another few paragraphs of my dissertation written that way!)

from lasagne.

ebenolson avatar ebenolson commented on May 12, 2024

I'm happy to help out with this if you want to assign some things to me.

from lasagne.

benanne avatar benanne commented on May 12, 2024

That would be excellent! Once we've converted the existing docs to the numpydoc format, any function, class or method without a docstring will need one, so there should be plenty of opportunities to help out :)

from lasagne.

f0k avatar f0k commented on May 12, 2024

Once we've converted the existing docs to the numpydoc format, any function, class or method without a docstring will need one

We don't actually need to do this separately. We can also try to just tackle the files one by one, converting, rewriting and adding docstrings as needed. The sphinx documentation will look awkward in between, but that's not really a problem. Maybe we should just change the sphinx configuration first so we have a motivation to clear up the mess that readthedocs will become. I'm not familiar with the sphinx setup, though...

from lasagne.

benanne avatar benanne commented on May 12, 2024

I guess not, but it's probably convenient to start with a PR that converts everything to numpydoc. Else we'll have to keep track somehow of which docs have been converted and which haven't, which also sounds tedious :)

from lasagne.

f0k avatar f0k commented on May 12, 2024

Else we'll have to keep track somehow of which docs have been converted and which haven't

Well, we need to keep track of which files are fully documented and which files still need work anyway. Maybe as a todo list in Issue #26.

from lasagne.

benanne avatar benanne commented on May 12, 2024

It's starting to look extremely unlikely that we'll be done by our self-imposed deadline of late April. I don't think it's a good idea to remove things from the milestone in order to make it, as everything in there is pretty essential. And we shouldn't forget that a release is also a commitment to the library interface, as @f0k has said before.

So I'm in favour of postponing the release until it's actually done and we have full API docs. Hopefully it won't take too much longer, but there is no way we can finish everything within the next two weeks at this rate.

from lasagne.

f0k avatar f0k commented on May 12, 2024

So I'm in favour of postponing the release until it's actually done and we have full API docs. Hopefully it won't take too much longer, but there is no way we can finish everything within the next two weeks at this rate.

Agreed. The last weeks we only had four active contributors (@benanne, @ebenolson, @MartinThoma and me), and the ISMIR deadline is getting very close, probably slowing down about half of the core team. We can still try to at least get all API-breaking changes done by the time @craffel planned to do his tutorial.

from lasagne.

benanne avatar benanne commented on May 12, 2024

Sounds good, let's focus on all the API-breaking stuff for now then. Of those, I believe #15, #164 and #207 are the ones that are not being addressed in a PR yet (and possibly #138 as well).

I'll try to work on #15 first.

from lasagne.

MartinThoma avatar MartinThoma commented on May 12, 2024

@benanne Could you eventually make a TODO list in the first post in this issue with stuff which should be done right before / after we go to version 1.0? For example:

  • Set version in setup.py to 1.0 and upload to PyPI (python setup.py sdist upload --sign)
  • Create a release with git (git tag -a 1.0.0 -m 'First release finished, closes #74'; git push --tags)
  • Make the release citable: https://guides.github.com/activities/citable-code/
  • Add hint how to cite code in README

(I'm not sure if there is more, but even if it's only those two points it would be bad to forget it.)

from lasagne.

benanne avatar benanne commented on May 12, 2024

I actually have no idea what all the steps involved in 'making a release' are, so I'm probably not the best person to make such a todo list. But feel free to let me know what should be on it and then I'll add it there later :) It seems a bit premature now since we're still working through various issues under the 'first release' milestone.

from lasagne.

f0k avatar f0k commented on May 12, 2024
  • Introduce lasagne.__version__

from lasagne.

ebenolson avatar ebenolson commented on May 12, 2024

how about using something like https://github.com/warner/python-versioneer for version info?

would be nice to be able to identify github versions when people are looking for support.

from lasagne.

dnouri avatar dnouri commented on May 12, 2024

@ebenolson: I think people using a version from Git should be able to tell which revision it is that they're using. With the first proper release on PyPI, this will hopefully become even less of an issue.

from lasagne.

f0k avatar f0k commented on May 12, 2024

I still think having pep440-style versions would be very useful. When I'm writing code against the development version and deploying it on the different machines I use for experiments, it would be nice to be able to do a simple "is lasagne.__version__ newer than commit xyz" check.
(/edit: Or, more relevantly, when I write code that should work both on the latest release and the development version.)

from lasagne.

benanne avatar benanne commented on May 12, 2024

I don't care much either way, so I guess we'll go with whatever consensus you guys can come up with :)

from lasagne.

dnouri avatar dnouri commented on May 12, 2024

@f0k: I think you want to check that you have the right version at install time, not at runtime (when it's too late). Use a requirements.txt file and put whatever version you know works.

Also, how would you check that 715c461 is newer than 92f501f?

from lasagne.

ebenolson avatar ebenolson commented on May 12, 2024

I made a PR #263 for this if we want to move the debate there.

from lasagne.

benanne avatar benanne commented on May 12, 2024

This is now the last issue in the "first release" milestone, so if we didn't forget anything I guess we're ready! Shall we set a date?

from lasagne.

f0k avatar f0k commented on May 12, 2024

The only thing left to decide is if to and how to mention contributors by name, and if and how to make the core team explicit. We could set up a changelog for that (setup.py checks for a CHANGES.txt already), and have something like:

VERSION 0.1 (release date)
* core contributors (in alphabetical order):
  * ...
  * ...
* extra contributors (in chronological order):
  * Some Body (github name): Did something
  * Someone Else (github name): This and that

So the core team would be listed up front, and occasional contributors would be listed along with what they contributed (it won't be possible to list what the core team did anyway). Alphabetical order avoids trying to judge how much each core team member did.

If we do that, we can also change the broken core team link in the docs to point at the change log instead.

Shall we set a date?

Is there any date nearby that has anything to do with lasagne or deep learning? :)

from lasagne.

craffel avatar craffel commented on May 12, 2024

The only thing left to decide is if to and how to mention contributors by name, and if and how to make the core team explicit.

I am personally fine with pretty much any method - let's not let this block the release!

Is there any date nearby that has anything to do with lasagne or deep learning? :)

We missed lasagne day :(

from lasagne.

f0k avatar f0k commented on May 12, 2024

We missed lasagne day :(

What a pity! But according to highly credible sources, every Thursday is Lasagna day:

So shall we just release it tomorrow? At what time? Before 19:00 CEST would suit me best.

from lasagne.

craffel avatar craffel commented on May 12, 2024

Haha, sounds good to me.

from lasagne.

benanne avatar benanne commented on May 12, 2024

Tomorrow is good! Whenever is most convenient for you I guess @f0k, because I suppose you'll be doing the honours :)

from lasagne.

f0k avatar f0k commented on May 12, 2024
  • Update requirements.txt to a Theano version that supports cuDNN v3 with all fixes?

from lasagne.

craffel avatar craffel commented on May 12, 2024

I don't see why not.

from lasagne.

benanne avatar benanne commented on May 12, 2024

sure!

from lasagne.

f0k avatar f0k commented on May 12, 2024

So, if we're going to release it today, the following needs to be merged:

  • #374 (ignore_border=True and interface unification for pooling layers)
  • #376 (rewrite of "Development" page)
  • #375 (change version strings, add changelog)

Please participate in reviewing those! I'd be fine with releasing it any time between now and, say, 22:00 CEST.

from lasagne.

benanne avatar benanne commented on May 12, 2024

I don't have time to review #374 in-depth unfortunately, the rest look good :) So close!

from lasagne.

skaae avatar skaae commented on May 12, 2024

They all look good to me :) Nice work

from lasagne.

f0k avatar f0k commented on May 12, 2024

So, shall we set a common time for merging things in and creating the tag? Like 21:00 CEST (that would be in one hour)? Sander, what's your schedule like?

from lasagne.

benanne avatar benanne commented on May 12, 2024

I guess that deadline has passed already :p I'm around now though.

from lasagne.

f0k avatar f0k commented on May 12, 2024

Okay. I'll merge #374 now and send out an announcement for the interface change...

from lasagne.

f0k avatar f0k commented on May 12, 2024

The release on github is done, and the DOI badge is there!

@benanne: Do the python setup.py sdist upload :) Be sure to do it from a clean checkout (if there are any untracked files in the source directory, you will end up submitting those as well). Maybe do a git clone https://github.com/Lasagne/Lasagne.git to an empty directory for that, just to be sure!

from lasagne.

benanne avatar benanne commented on May 12, 2024

It is done! https://pypi.python.org/pypi/Lasagne/0.1

from lasagne.

f0k avatar f0k commented on May 12, 2024

Beautiful! pip install lasagne works! And we've even got our own bibtex file: https://zenodo.org/record/27878/export/hx
Closing this issue!

(minor annoyance: warning: no previously-included files matching '__pycache__' found under directory '*' -- that's because of the exclusion rules in MANIFEST.in, maybe they shouldn't have been there, or maybe they're only needed for certain setuptools versions. I've seen them in several projects.)

from lasagne.

craffel avatar craffel commented on May 12, 2024

Wooooo!

lasagne

Someone should make announcements on all the relevant channels.

from lasagne.

benanne avatar benanne commented on May 12, 2024

I posted it up on lasagne-users - what other relevant channels are you thinking of?

from lasagne.

craffel avatar craffel commented on May 12, 2024

Any ML groups? /r/machinelearning? google+ machine learning? Friends and family?

from lasagne.

benanne avatar benanne commented on May 12, 2024

Sure, go for it :)

from lasagne.

craffel avatar craffel commented on May 12, 2024

Upvote me! https://www.reddit.com/r/MachineLearning/comments/3gwdi2/lasagne_v01_released/

I don't have a Google+ situation so I can't do that one...

Separate note - now that we are on Pypi, we should add this badge: http://badge.fury.io/for/py/Lasagne PR: #381

from lasagne.

skaae avatar skaae commented on May 12, 2024

I posted it in the google+ deeplearning group.

from lasagne.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.