Comments (46)
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.
+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.
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.
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.
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.
I'm happy to help out with this if you want to assign some things to me.
from lasagne.
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.
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.
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.
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.
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.
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.
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.
@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
insetup.py
to1.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.
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.
- Introduce
lasagne.__version__
from lasagne.
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.
@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.
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.
I don't care much either way, so I guess we'll go with whatever consensus you guys can come up with :)
from lasagne.
@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.
I made a PR #263 for this if we want to move the debate there.
from lasagne.
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.
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.
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.
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.
Haha, sounds good to me.
from lasagne.
Tomorrow is good! Whenever is most convenient for you I guess @f0k, because I suppose you'll be doing the honours :)
from lasagne.
- Update
requirements.txt
to a Theano version that supports cuDNN v3 with all fixes?
from lasagne.
I don't see why not.
from lasagne.
sure!
from lasagne.
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.
I don't have time to review #374 in-depth unfortunately, the rest look good :) So close!
from lasagne.
They all look good to me :) Nice work
from lasagne.
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.
I guess that deadline has passed already :p I'm around now though.
from lasagne.
Okay. I'll merge #374 now and send out an announcement for the interface change...
from lasagne.
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.
It is done! https://pypi.python.org/pypi/Lasagne/0.1
from lasagne.
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.
Wooooo!
Someone should make announcements on all the relevant channels.
from lasagne.
I posted it up on lasagne-users - what other relevant channels are you thinking of?
from lasagne.
Any ML groups? /r/machinelearning? google+ machine learning? Friends and family?
from lasagne.
Sure, go for it :)
from lasagne.
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.
I posted it in the google+ deeplearning group.
from lasagne.
Related Issues (20)
- ThinPlateSpline is bugged, proposed fix HOT 2
- Update Lasagne installation doc to new gpuarray backend HOT 3
- AttributeError: 'Conv2DLayer' object has no attribute 'flip_filters' HOT 1
- Theano discontinuation HOT 5
- Where is the GlobalMaxPool2D?? HOT 1
- How to save layer l_out as lasagne layer to network in json or h5 format to be imported from Matlab HOT 1
- how to get the exact value of the tensor variable and its type. HOT 2
- The tremendous different time consuming on mnist between cnn and mlp architecture. HOT 6
- How to put constraint on the weights in each layer. HOT 1
- How to put the constraint on parameters
- AttributeError: 'Conv2DLayer' object has no attribute 'num_groups' HOT 2
- Why the `bcast` is needed in `create_param()`? HOT 2
- rules in setting weights in the combination of conv2d layer and batch norm layer HOT 1
- updates.py HOT 2
- Hi! There are some problems about creating a new layer! HOT 1
- lasagne\layers\base.py HOT 1
- LocallyConnected2DLayer params not initialized correctly HOT 1
- Center Loss as an Objective Function?
- Error with mock in Python 3.8.3 and 3.9 HOT 3
- lasagne isn't running on CUDA (Windows 10) .theanorc setup HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lasagne.