It is called stable since no one using trunk/nightly build detected those errors.
I agree with you, but you cannot blame anyone. Web2py has so much features and it is impossible to test everything. On Fri, Aug 31, 2012 at 1:44 PM, vinicius...@gmail.com < vinicius...@gmail.com> wrote: > First of all, I'd like to thank you all. You're making a great job, guys. > I see web2py becoming more reliable to bigger projects and I'm very > pleased with it. > You all rock! :-) > > In spite of this huge effort, isn't it premature to call 2.0.2 or even > 2.0.3 stable? I know there were several months of hard work, but if we have > bugs detected so fast, we cannot call it stable yet, right? > > Maybe some release candidate call or a pre-release period for tests, > before spreading it as stable would help us. > > -- > Vinicius Assef > > > On 08/30/2012 05:49 PM, Massimo Di Pierro wrote: > >> All bugs reported today have been fixed in 2.0.3 out now (except a minor >> issue with markmin that we are investigating). >> >> If you find other issues, please continue report them. We'd rather fix >> them sooner rather than later. >> >> Thanks for all your help and testing. >> >> Massimo >> >> >> >> On Wednesday, 29 August 2012 22:41:34 UTC-5, Massimo Di Pierro wrote: >> >> After 5 months. It is done. This is the most waited and the most >> feature-packed release. >> >> I am sure we'll find some corners that need to be ironed but it is >> considerably better than 1.99.7. It adds lot of new features and >> improves many existing ones: >> >> - 57,000 new lines of code and closed 279 issues since 1.99.7. >> - Retrieving data from DB should be faster, in particular >> select(cacheable=True) >> - Has a new scheduler, a built-in wiki, new language and >> pluralization system, better markmin with oembed support and better >> scaffolding app, increased security. >> - Lots of experimental features including GIS support, mongodb >> support, built-in auth.wiki(), and more. >> >> Should be 100% backward compatible. If you run into any issue let us >> know ASAP. >> >> I personally want to thank the major contributors to this release >> (in alphabetic order) >> Alan, Andrew, Anthony, Bruno, Christian, Dave, Dominic, Iceberg, >> Jonathan, Marc, Mariano, Marin, Martin, Mark, Michael, Michele, >> Niphlod, Patrick, Vladyslav, >> They spend many nights testing, coding, debugging at a very fast pace. >> >> Many many people have contributed. >> >> If your contribution has not been properly acknowledged please let >> us know ASAP. It is probably an oversight. >> >> >> Massimo >> >> >> Detailed changelog >> =============== >> >> ## 2.00.2 >> >> ### DAL Improvements >> >> - Support for DAL(lazy_tables=True) and >> db.define_table(on_define=**lambda table:), thanks Jonathan >> - db(...).select(cacheable=True) make select 30% faster >> - db(...).select(cache=(cache.**ram,3600)) now caches parsed data >> 100x >> faster >> - db(...).count(cache=(cache.**ram,3600)) now supported >> - MongoDB support in DAL (experimental), thanks Mark Breedveld >> - geodal and spatialite, thanks Denes and Fran (experimental) >> - db.mytable._before_insert, _after_insert, _before_update, >> _after_update, _before_delete. _after_delete (list of callbacks) >> - db(...).update_naive(...) same as update but ignores >> table._before_update and table._after_update >> - DAL BIGINT support and DAL(...,bigint_id=True) >> - IS_IN_DB(..., distinct=True) >> - new syntax: db.mytable.insert(**myuploadfield=open(....)), thank >> you >> Iceberg >> - db(...).select(db.mytable.**myfield.count(distinct=True)) >> - db(db.a)._update(name=db(db.b.**a==db.a.id >> <http://db.a.id>).nested_**select(db.b.id <http://db.b.id>)) >> - db.mytable.myfield.filter_in, filter_out >> - db.mytable._enable_record_**versioning(db) adds versioning to this >> table >> - teradata adapter, thanks Andrew Willimott >> - experimental Sybase Adapter >> - added db.table.field.avg() >> - Support for Google App Engine projections, thanks Christian >> - Field(... 'upload', default=path) now accepts a path to a local >> file as default value, if user does not upload a file. Relative path >> looks inside current application folder, thanks Marin >> - executesql(...,fields=,**columns=) allows parsing of results in >> Rows, thanks Anthony >> >> ### Auth improvements >> >> - auth.enable_record_versioning(**db) adds full versioning to all >> tables >> - @auth.requires_login(**otherwise=URL(...)) >> - auth supports salt and compatible with third party data, thanks >> Dave Stoll >> - CRYPT now defaults to pbkdf2(1000,20,sha1) >> - Built-in wiki with menu, tags, search, media, permissions. def >> index: return auth.wiki() >> - auth.settings.everybody_group_**id >> - allow storage of uploads on any PyFileSystem (including amazon) >> >> ### Form improvements >> >> - FORM.confirm('Are you sure?',{'Back':URL(...)}) >> - SQLFORM.smartdictform(dict) >> - form.add_button(value,link) >> - SQLFORM.grid(groupby='...') >> - fixed security issue with SQLFORM.grid and SQLFORM.smartgrid >> - more export options in SQLFORM.grid and SQLFORM.smartgrid (html, >> xml, csv, ...) >> >> ### Admin improvements >> >> - new admin pages: manage_students, bulk_regsiter, and progress >> reports >> - increased security in admin against CSRF >> - experimental Git integration >> - experimental OpenShift deployment >> - multi-language pluralization engine >> - ace text web editor in admin >> - Ukrainian translations, thanks Vladyslav Kozlovskyy >> - Romanian translation for welcome, thanks ionel >> - support for mercurial 2.6, thanks Vlad >> >> ### Scheduler Improvements (thanks to niphlod, ykessler, dhx, toomim) >> >> - web2py.py -K myapp -X starts the myapp scheduler alongside the >> webserver >> - tasks are marked EXPIRED (if stop_time passed) >> - functions with no result don't end up in scheduler_run >> - more options: web2py.py -E -b -L >> - scheduler can now handle 10k tasks with 20 concurrent workers and >> with no issues >> - new params: >> tasks can be found in the environment (no need to define the >> tasks parameter) >> max_empty_runs kills the workers automatically if no new tasks >> are found in queue (nice for "spikes" of processing power) >> discard_results to completely discard the results (if you don't >> need the output of the task) >> utc_time enables datetime calculations with UTC time >> - scheduler_task changes: >> task_name is no longer required (filled automatically with >> function_name if found empty) >> uuid makes easy to coordinate scheduler_task maintenance >> (filled automatically if not provided) >> stop_time has no default (previously was today+1) >> retry_failed to requeue automatically failed tasks >> sync_output refreshes automatically the output (nice to report >> percentages) >> - workers can be: >> DISABLED (put to sleep and do nothing if not sending the >> heartbeat every 30 seconds) >> TERMINATE (complete the current task and then die) >> KILL (kill ASAP) >> >> ### Other Improvements >> >> - gluon/contrib/webclient.py makes it easy to create functional >> tests for app >> - DIV(..).elements(...replace=..**.), thanks Anthony >> - new layout based on Twitter Bootstrap >> - New generic views: generic.ics (Mac Mail Calendar) and generic.map >> (Google Maps) >> - request.args(0,default=0, cast=int, otherwise=URL(...)), thanks >> Anthony >> - redirect(...,type='auto') will be handled properly in ajax responses >> - routes in can redirect outside with >> routes_in=[('/path','303->**http://..')] >> - better memcache support >> - improved spreadsheet, thanks Alan >> - new internationalization engine, thanks Vladyslav >> - pluralization engine, thanks Vladyslav >> - new markmin with support for nested lists, <i>, <em>, autolinks, >> thanks Vladyslav >> - new syntax: {{=BR()*5}} >> - gluon.cache.lazy_cache decorator allows caching functions in modules >> - .coffee and .less support in response.files, thanks Sam Sheftel >> - ldap certificate support >> - pg8000 postgresql driver support (experimental) >> - @cache('%(name)s%(args)s%(**vars)s',5) and cache.autokey >> - added tox.ini, thanks Marc >> - web2py.py --run_system_tests, thanks Marc Abramowitz >> - html.py (and web2py helpers) can be used without web2py dependencies >> - new fpdf, thanks Mariano >> >> -- >> >> >> >> > -- > > > > --