See, guys, I'm not blaming anyone and I'm not saying Web2py is not good, or your work failed.

I pay my bills working with web2py for the last year. I use it for 3 years, now. I really like that and help spread the word.


Web2py has so much features and it is impossible to test everything.

Sorry, but I cannot agree with this statement. Is it the official position?

Remember, one of the strengths is our backward compatibility. It can be achieved with detailed tests **before** anouncing a new stable release.

"Stable" means: "you can download and just use it". Anything different is "almost stable" or "buggy yet" or, using beautiful words, "release candidate" or "pre-release version".

I'd like to hear your oppinions.

--
Vinicius Assef



On 08/31/2012 09:01 AM, Marin Pranjić wrote:
It is called stable since no one using trunk/nightly build detected
those errors.

I agree with you, but you cannot blame anyone.


On Fri, Aug 31, 2012 at 1:44 PM, [email protected]
<mailto:[email protected]> <[email protected]
<mailto:[email protected]>> 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>
             <http://db.a.id>).nested___select(db.b.id <http://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

        --




    --




--




--



Reply via email to