I just downloaded it myself, unziped and VERSION says 2.0.3. I am not sure what is wrong. try another clean download in its own folder. many sure you only have one web2py running.
On Friday, 31 August 2012 00:00:32 UTC-5, Andrew W wrote: > > Still 2.0.2. > > On Friday, August 31, 2012 3:31:20 PM UTC+12, Massimo Di Pierro wrote: >> >> Can you please try again the windows binary and let me know if the >> problem persists. >> >> On Thursday, 30 August 2012 21:13:18 UTC-5, Andrew wrote: >>> >>> Well, perhaps not. >>> The Download page says 2.0.3, but when I start it says 2.0.2. in the app >>> ? Perhaps the windoes exe has not been updated. >>> >>> >>> On Friday, August 31, 2012 2:09:29 PM UTC+12, Andrew wrote: >>>> >>>> The Issue is still there in 2.0.3 >>>> >>>> On Thursday, August 30, 2012 11:40:07 PM UTC+12, Sridhar wrote: >>>>> >>>>> Hi Team, >>>>> >>>>> Thanks a ton for the new features and improvements! >>>>> >>>>> I'm just getting started and was trying to run web2py.exe on Windows 7 >>>>> after downloading it from >>>>> http://www.web2py.com/examples/static/web2py_win.zip (2.0.2 stable). >>>>> >>>>> However, ran into this error: >>>>> >>>>> ****************************** >>>>> D:\web2py>web2py -S welcome >>>>> Traceback (most recent call last): >>>>> File "web2py.py", line 16, in <module> >>>>> File "gluon/__init__.py", line 15, in <module> >>>>> File "gluon/globals.py", line 24, in <module> >>>>> File "gluon/serializers.py", line 11, in <module> >>>>> File "gluon/languages.py", line 264, in <module> >>>>> File "gluon/languages.py", line 250, in read_possible_plurals >>>>> WindowsError: [Error 3] The system cannot find the path specified: >>>>> 'D:\\web2py\\gluon\\contrib\\rules/*.*' >>>>> ****************************** >>>>> >>>>> Then, realized there was no folder called "gluon" in the extracted >>>>> folder. I downloaded the source from >>>>> http://www.web2py.com/examples/static/web2py_src.zip and copied the >>>>> "gluon" folder from this source code to the previous web2py folder. >>>>> >>>>> This solved the error and was able to web2py GUI. Hope this helps. >>>>> >>>>> Regards, >>>>> Sridhar >>>>> >>>>> On Thursday, August 30, 2012 9:11:34 AM UTC+5:30, 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).nested_select(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 >>>>>> >>>>> --