0.7.3 ========== * Run pychecker and correct stuff * admin/plugins/create_movable.rm_sitecustomize() is now admin/plugins/create_movable.cleanup_site() and removes both the sitecustomize.py* and the ./site-packages folder * Update unittest for create-movable plugin. All works now. * Make admin/console.py use simpleweb.utils.msg* for error reporting, now we all look consistent * Refactored out admin/plugin/create_movable.conv_obj2src of get_module_file. Use that to fix the test_get_module_file unittest, so it properly reads the .py of the unittest file, and not the .pyc * Modify createproject, createtables, droptables commands to simpleweb-admin to now be create-project, create-tables, drop-tables 0.7.2 - Dependency Reduction Branch =================================== * Add 'create-movable' plugin to simpleweb-admin * Initial work on dependency reduction * Introduced simpleweb.extlib [resolver, selector, yaro, memento, static] * All references to the above libraries are now internal * Made 'flup' an optional dependency * Dev server will warn of sessions not being available. If config.enable_sessions is set * FCGI deployment will send a msg to stderr, on non flup.servers.fcgi availability. * Made sqlobject, sqlalchemy and Cheetah optional dependencies attempting to enable them as plugins in config.py will cause an error alerting that they can't be used unless installed. * simpleweb.utils.optional_dependecies_err() -> to consistenly report issues * oh! modified the internal server banner again :) * utils.from_import() now properly raises exceptions instead of calling sys.exit() * simpleweb no more crashes if a controller specified in urls.py doesn't exist. It sends a warning to stderr instead. If an attempt is made to access that url, an HTTP 404 is raised. * unify error/info/warn reporting accross simpleweb with simpleweb.utils.msg_[err | warn | info] * Add SimpleErrorMiddleware, and use that to handle errors in SimplewebReloadingApp(). * Correct the simpleweb-admin 'help' plugin to properly print help for create-movable plugin. Also, set ground-work for converting badly named plugins (e.g. createproject should be renamed to create-project, etc) 0.7.1 - API BREAK !!! ===================== * API BREAK - config.py - host, port, user, group are now server_host, server_port, server_user, server_group * Add default values for config.user and config.group * Add some exception handling to make the user/group switching in the devserver more robust * Add settings.Config.set_default_attr(), use this to clean up __init__.start(), default values are handled inside the object itself now. * remove __init__.start() now redundant * Change signature of plugins.runmethods functions. Now passing in urls and config for more loose-coupling. * Default of config.host changed from '0.0.0.0' to '127.0.0.1' for security reasons. * Corrected default value of config.user and config.guest (values where unquoted) * Change internally used config.dirname to config.working_directory * Use os.getcwd() to set config.working_directory, when settings.Config() is called. Formerlly was using config.__file__ * Filter out attributes special attributes (__file__, __cmd__, etc) from settings.Config() object * Cleanup plugins/template.py to use config.working_directory as the Cheetah template base directory. Formerly guessing it with os.getcwd() * Refactor out webserver.py from plugins.runmethods.development * Change the way dispatcher.Urls() works. Now the controller objects are only resolved when .geturls is called and not when .add() is called. * Add SimplewebReloadingApp() * use memento.Assassin to call SimplewebReloadingApp(), now we can have dev server reloading if enabled. Internal server reflects if reloading is on or off. * Add new config key 'server_reload' to control internal server reloading default is True 0.7.0 ============ * Refactorings - * add app.py in a bid to cleanup __init__.py * app.SimplewebApp * change the way deployment methods are handled. Now using plugins.runmethods * Change the default value for __init__.run(method=None) to __init__.run(method='development') * add optional config.user and config.group support in development server. Only affects POSIX operating systems. Modify default config.py template to reflect this. [Thanks to Sam Montgomery-Blinn] * Oh... changed the dev-server prompt ;-) * Added support for using classes as controllers. Now we can easily migrate old web.py apps over ;-) 0.6.11 ============ * Cleaned up ImportError exception hanlers, so we can get the real root cause of the exceptions. [Thanks to Same Montgomery-Blinn] 0.6.10 - API BREAK !!! ====================== * SimpleAuth.require() now properly returns an HTTP 401 Unauthorized when auth fails * Change config.auth_plugin.authenticated() to config.auth_plugin.set_session_user(), its more 'Discoverable' 0.6.9 - API BREAK !!! ===================== * Some API breaking but consistency modifications * use_session is now enable_sessions * debug is now enable_debug 0.6.8 ============= * Added config.py key use_session, to control session support. Default is False * Cleanup some of the default pages, remove some needless comments. 0.6.7 ============= * Fix 'Coercing To Unicode' bug in createproject command (thanks to manatlan@gmail.com) 0.6.6 ============= * Add config.debug as a key used to control wsgi debugging output. Default is False * Expose config.debug in config.py by default * Make main.py executable by default * Make app to still run properly in absence of config.auth_plugin setting. * Comment out auth_plugin by default * Leave only mysql based db configs in config.py 0.6.5 ============= * fixup sys.path to properly locate the project folder (currently the pwd, latter, may be gotten via pkg_resources) whenever we do import hacks 0.6.4 ============= * fix bad packaging in 0.6.3. meh! :( 0.6.3 ============= * fix depedencies spelling errors in setup.py for SQLAlchemy and SQLObject 0.6.2 ============= * Pull out transaction support from SqlObjectDB, too many issues now. Continue with other stabilization * Add simpleweb-admin help and related commands (command help is gotten via doc-string) * pull out main.css into /static - Finally! 0.6.1 - Beginning stabilization towards version 1.0, no drastically new features for now ============= * Make all plugin names in config.py reflect the fact that they're plugins (config.db_plugin, config.auth_plugin, etc) * Couple of small bug-fixes 0.6 ============= * Simple Per Session User Mechanism - Provides request.session.user (also via plugin) * Auth Mechanism provided with default User Mechanism, complete with decorator based dispatch method protection that is user and roles aware. (@config.auth_plugin.require(users, roles)) * Development server hosting static pages (Funky middleware using help from static.Cling), no more borrowing (ahem stealing!) from web.py :) * When hosted, /static/ can/should be managed by http server (preferred method for now). * Change from MemorySessionStore() to DiskSessionStore(), was breaking when not on development server. * Start easy integration for transaction support in SqlObjectDB plugin. * register with PyPI 0.5 ============= * A simpleway of specifying how app will run: method run(method='fcgi|cgi|None') #other methods coming * Simple lighttpd(fcgi) deployment * Sessions (request.session) using flup.middleware.session.SessionMiddleware * Stole webpy's internal webserver for serving up our static pages in our development server. request.redirect() not working :( 0.4 ============== * Change from ROUTES dispatch to Selector * Add yaro wrapper for simplifying handlers 0.3 ============== * config.py for settings * urls.py for urls * models.py * A module based HTTP methods dispatcher (like web.py only using modules not classes) * A template plugin system (Cheetah [default] working right now) * An ORM plugin system (sqlalchemy & sqlobject[default]) * A simple admin tool with an extensible plugin system commands supported : - run - createtables [need support for createtable , droptable ] - droptables - createproject