[Checkins] SVN: grokcore.component/trunk/ Rewrote all of the basic
documentation files for "grokcore.component",
Brandon Rhodes
brandon at rhodesmill.org
Tue Mar 18 14:54:54 EDT 2008
Log message for revision 84757:
Rewrote all of the basic documentation files for "grokcore.component",
and removed "grokwiki" and "doc" and pared down the buildout.
Changed:
U grokcore.component/trunk/CHANGES.txt
U grokcore.component/trunk/COPYRIGHT.txt
U grokcore.component/trunk/CREDITS.txt
U grokcore.component/trunk/INSTALL.txt
U grokcore.component/trunk/README.txt
U grokcore.component/trunk/TODO.txt
U grokcore.component/trunk/buildout.cfg
D grokcore.component/trunk/doc/
D grokcore.component/trunk/grokwiki/
-=-
Modified: grokcore.component/trunk/CHANGES.txt
===================================================================
--- grokcore.component/trunk/CHANGES.txt 2008-03-18 17:29:25 UTC (rev 84756)
+++ grokcore.component/trunk/CHANGES.txt 2008-03-18 18:54:53 UTC (rev 84757)
@@ -1,225 +1,9 @@
-Grok changes
-************
+grokcore.component changes
+**************************
-0.12 (unreleased)
-=================
+0.1 (unreleased)
+================
-Feature changes
----------------
-
-* Added testsetup classes in grok.testing to improve easy setup of
- unit- and functional tests.
-
-* Add support for viewlets and viewlet managers, ``grok.Viewlet``
- and ``grok.ViewletManager``.
-
-* Add a new directive, ``grok.order()``, which can be used to help
- sort components. At the time it is not used yet, but we intend to
- use it for the viewlets support. Note that this means Grok now
- requires Martian 0.9.3 or higher. See ``grok.interfaces`` for more
- documentation on this directive.
-
-* Now depend on ``z3c.autoinclude``. This allows the use of the
- ``<autoinclude package="."/>`` directive, which automatically loads
- up ZCML needed for the dependencies listed in your project's
- ``setup.py``. The new release of grokproject adds this line
- automatically. Upgrade ``grokproject`` to make use of this
- functionality in new projects::
-
- $ easy_install -U grokproject
-
- See also the ``upgrade notes``_ for information on how to update
- your existing projects.
-
-.. _``upgrade notes``: http://grok.zope.org/project/upgrade-notes
-
-Bug fixes
----------
-
-* Do not register the publishTraverse and browserDefault methods of the
- JSON component as views.
-
-* Methods with names that start with an '_' are not registered as views
- for XMLRPC, REST and JSON components.
-
-* Use a configuration action for the registration of the static directory.
-
-* Fix imports from zope.app.securitypolicy.
-
-* Grok does not raise a GrokError anymore when it finds unassociated
- templates, but will issue a UserWarning.
-
-* Fix https://bugs.launchpad.net/grok/+bug/161948: grok.testing.grok()
- now also loads the ZPT template factories so that unit tests that
- need to configure views with ZPT templates continue to work.
-
-* Changed a few remaining references to ``grok.grok`` and
- ``grok.grok_component`` to their correct equivalents in
- ``grok.testing``.
-
-* ``grok.testing.grok_component()`` could not be used in a pure
- doctest. This needed a bugfix in Martian (since 0.9.2). Add a test
- that demonstrates this problem.
-
-* Fix https://bugs.launchpad.net/grok/+bug/162437: grok.Form and its
- subclasses did not implement IBrowserView.
-
-* Fix https://bugs.launchpad.net/grok/+bug/185414: grok introspector
- was broken for zipped eggs.
-
-* Fix https://bugs.launchpad.net/grok/+bug/125720: server control form
- had shutdown as default action, even when entering an admin message.
-
-Restructuring
--------------
-
-* Refactor commonalities out of meta.py.
-
-* zope.app.securitypolicy is no longer used. zope.securitypolicy provides
- all securitypolicy features used by Grok.
-
-0.11 (2007-11-08)
-=================
-
-Feature changes
----------------
-
-* Integrated skins and layers: ``grok.layer``, ``grok.IGrokLayer``,
- ``grok.Skin``.
-
-* Grok now supports hooking in new template languages without much work.
- See also doc/minitutorials/template-languages.txt. See Restructuring below
- for more techinical info.
-
-* Accessing a template macro via context/@@the_view/the_template is now
- deprecated for the standard ZPT story of using
- context/@@the_view/macro/the_template.
-
-* There is now a grok.direct() directive that can be used on GlobalUtilities
- to mark that the class provides the utility interface directly and need
- no instantiation.
-
-* Removed ``grok.define_permission`` in favor of the
- ``grok.Permission`` component base class. You should now subclass
- this base class to define permissions. See also
- doc/minitutorials/permissions.txt
-
-* Added the ``grok.Role`` component base class to define roles.
-
-* The admin UI now displays and offers deletion of broken objects.
-
-* Removed support for defining model schemas using an inner class with
- the special name ``fields``. This was abandoned in favor the usual
- Zope 3 way of defining schemas in interfaces and implementing them
- in our Grok models.
-
-* Integrated REST support. See doc/minitutorials/rest.txt for usage
- information.
-
-Bug fixes
----------
-
-* Remove zc.recipe.egg, zc.recipe.filestorage, zc.recipe.testrunner,
- zc.zope3recipes from version requirements.
-
-* The admin UI now shows interfaces in modules.
-
-* ``handle...`` is not a special function name anymore.
-
-* Views no longer need a custom ``AbsoluteURL`` view to determine
- their URL, since each instance now properly gets a ``__name__``
- attribute.
-
-* buildout.cfg extends versions.cfg to pin down the versions of the
- dependency tree. See also http://grok.zope.org/releaseinfo/readme.html
-
-Restructuring
--------------
-
-* Grokkers now emit configuration actions, much like ZCML directive
- handlers do. If you defined custom grokkers, see doc/upgrade.txt for
- more information.
-
-* The new pluggable template language support includes some restructuring:
-
- - GrokPageTemplate is now split up into two. BaseTemplate, on which all
- templates need to be based, and GrokTemplate, which also provides a
- set of methods for easy integration of templating languages.
-
- - All objects based on GrokTemplate are now grokked, instead of having
- separate grokkers for each type of template.
-
- - The View is now completely template-language agnostic, which makes it
- easy to hook in new page template languages.
-
- - There are now new interfaces (ITemplate and ITemplateFileFactory)
- used when you implement support for a new templating language.
-
-* Changed the way grok's functional tests are set up. Instead of each
- test case doing its own test setup, it is now done once by the
- ftesting layer. This avoids ordering problems when some ftests
- would influence the environment of other ftests that were run later
- in time.
-
-0.10.2 (2007-10-24)
-===================
-
-Bug fixes
----------
-
-* Remove zc.recipe.egg, zc.recipe.filestorage, zc.recipe.testrunner,
- zc.zope3recipes from version requirements.
-
-* Require zope.app.error = 3.5.1
-
-0.10.1 (2007-10-10)
-===================
-
-Bug fixes
----------
-
-* buildout.cfg extends versions.cfg to pin down the versions of the
- dependency tree. This should avoid the situation where we release
- Grok, some dependency changes, and Grok breaks as a result. In
- conjunction with this we will also be releasing a new version of
- grokproject that will use this version infrastructure by default.
-
- For more information about this change, see:
- http://grok.zope.org/releaseinfo/readme.html
-
-0.10 (2007-08-21)
-=================
-
-Feature changes
----------------
-
-* Integrated admin user interface.
-
-* Configuration using Martian (http://pypi.python.org/pypi/martian).
-
-* Flash message infrastructure included.
-
-* Adjust dependencies for Grok so that grokproject should work on
- Windows.
-
-Bug fixes
----------
-
-* A fix in Martian where multiple grok.Model or grok.Container classes
- could result in something being found as a context twice.
-
-0.9 series (early 2007 until July 2007)
-=======================================
-
-Feature changes
----------------
-
-Grok was released in "continuous release" mode from SVN during this period.
-
-0.1 series (September 2006 until early 2007)
-============================================
-
-Feature changes
----------------
-
-Grok was created in September 2006.
+* Created ``grokcore.component`` in March 2008
+ by copying things in ``grok``
+ and then renaming the module in all of the tests.
Modified: grokcore.component/trunk/COPYRIGHT.txt
===================================================================
--- grokcore.component/trunk/COPYRIGHT.txt 2008-03-18 17:29:25 UTC (rev 84756)
+++ grokcore.component/trunk/COPYRIGHT.txt 2008-03-18 18:54:53 UTC (rev 84757)
@@ -1,4 +1,4 @@
-Copyright (c) 2006 gocept gmbh & co. kg, Martijn Faassen and Philipp von
+Copyright (c) 2008 gocept gmbh & co. kg, Martijn Faassen and Philipp von
Weitershausen
All Rights Reserved.
Modified: grokcore.component/trunk/CREDITS.txt
===================================================================
--- grokcore.component/trunk/CREDITS.txt 2008-03-18 17:29:25 UTC (rev 84756)
+++ grokcore.component/trunk/CREDITS.txt 2008-03-18 18:54:53 UTC (rev 84757)
@@ -1,66 +1,4 @@
CREDITS
=======
-* Martijn Faassen (original developer)
-
-* Wolfgang Schnerring (original developer)
-
-* Christian Theune (original developer)
-
-* Philipp von Weitershausen (original developer)
-
-* Jan-Wijbrand Kolman (Grok Zwei sprint, meta grokker improvements)
-
-* Uli Fouquet (admin interface, summer of code student)
-
-* Darryl Cousins (website, admin interface)
-
-* Kevin Teague (website)
-
-* Tim Terlegård (JSON support)
-
-* Sebastian Ware (website effort, documentation)
-
-* Christian Zagrodnick (early grok discussions)
-
-* Mikhail Kashkin
-
-* Wim Boucqaert (admin interface layout improvements)
-
-* Kevin M. Smith (skins and layers support)
-
-* Luciano Ramalho
-
-* Lennart Regebro (template pluggability)
-
-* Guido Wesdorp (template pluggability)
-
-* Brandon Rhodes (template pluggability)
-
-* Godefroid Chapelle (conversion to Z3 configuration actions)
-
-* ME GROK (team mascot)
-
-Thank you
----------
-
-* The Zope 3 developers, who provided the mountain for Grok to stand
- on.
-
-* gocept for hosting the first grok sprint in Halle, Germany. Special
- thanks to Felicia Faassen Wong, Christian Zagrodnick and Magda
- Motyka for the delicious food.
-
-* Philipp von Weitershausen for hosting the second grok sprint in
- Dresden, Germany. Special thanks to Heinrich von Jagwitz for the
- delicious food.
-
-* The organizers of EuroPython 2007 in Vilnius for allowing us to host
- the third Grok sprint after EuroPython there.
-
-* GfU Cyrus in Cologne for generously hosting the fourth Grok sprint
- (Neanderthal sprint).
-
-* ID StudioLab of the faculty of Industrial Design at the Delft
- University of Technology for sponsoring the development of REST
- support in Grok.
+See the CREDITS file in the main ``grok`` project itself.
Modified: grokcore.component/trunk/INSTALL.txt
===================================================================
--- grokcore.component/trunk/INSTALL.txt 2008-03-18 17:29:25 UTC (rev 84756)
+++ grokcore.component/trunk/INSTALL.txt 2008-03-18 18:54:53 UTC (rev 84757)
@@ -1,63 +1,19 @@
Preparing for grok development
------------------------------
-The Grok development sandbox is set up via `zc.buildout`_
+Install setuptools on your system, or use a setuptools-based
+environment like a "virtualenv" or a "buildout", and then install
+"grokcore.component". Doing it from the command line looks like::
-.. _zc.buildout: http://cheeseshop.python.org/pypi/zc.buildout
+ $ sudo easy_install -U grokcore.component
-You may have setuptools already installed for your system Python. In
-that case, you may need to upgrade it first because buildout requires
-a very recent version::
+Then you can try importing it from your Python code.
- $ sudo easy_install -U setuptools
-
-If this command fails because easy_install is not available, there is
-a good chance you do not have setuptools available for your system
-Python. If so, there is no problem because setuptools will be
-installed locally by buildout.
-
-Bootstrap the buildout environment::
-
- $ python bootstrap/bootstrap.py
-
-and run the buildout command::
-
- $ bin/buildout
- [lots of stuff will be downloaded and installed here]
-
-Note that if you have more than one sandbox for a Zope-based web
-application, it will probably make sense to share the eggs between the
-different sandboxes. You can tell zc.buildout to use a central eggs
-directory by creating ``~/.buildout/default.cfg`` with the following
-contents::
-
- [buildout]
- eggs-directory = /home/bruno/buildout-eggs
-
-Running the demo applications
------------------------------
-
-You can start Zope with the demo applications installed with the
-following command:
-
- $ bin/zopectl fg
-
-If you now connect to port 8080 and log in with username 'grok',
-password 'grok', you should be able to add the grok-based applications
-(such as grokwiki) from the menu.
-
Running the tests
-----------------
-Grok's tests are easily run by executing the test runner that's
-installed in the ``bin`` directory::
+To run the "grokcore.component" tests, you need to download the source
+code from version control and run the following command which the
+buildout will create::
$ bin/test
-
-Generating the website files
-----------------------------
-
-Grok's tutorial documents for the website can easily be generated
-using the following script in ``bin``:
-
- $ bin/grok2html /path/of/output/directory
Modified: grokcore.component/trunk/README.txt
===================================================================
--- grokcore.component/trunk/README.txt 2008-03-18 17:29:25 UTC (rev 84756)
+++ grokcore.component/trunk/README.txt 2008-03-18 18:54:53 UTC (rev 84757)
@@ -1,46 +1,11 @@
-Grok
-****
+grokcore.component
+******************
-What is grok?
-=============
-
-Grok makes it easier to get started with a Zope 3 web application.
-
-Grok uses the Component Architecture and builds on Zope 3 concepts
-like content objects (models), views, and adapters. Its simplicity
-lies in using **convention over configuration** and **sensible
-defaults** when wiring components together. That means neither a
-configuration language like ZCML nor a lot of repetition are needed to
-create a web application with grok.
-
-You can find out much more about Grok at our http://grok.zope.org
-website.
-
-Who is grok?
-============
-
-Grok is a friendly caveman from the Stone Age. He has a big club that
-he hunts mammoths with. He will also use this club to smash anything
-he doesn't like.
-
-"ME GROK SMASH ZCML!"
-
-Getting grok
-============
-
-The easiest way to get started with grok is to install the
-`grokproject <http://cheeseshop.python.org/pypi/grokproject>`_ package
-(e.g. via ``easy_install grokproject``) and then create a new project
-area by calling the ``grokproject`` script like so::
-
- $ grokproject MyProject
- ... many lines of output here
-
-This will create a project area in ``MyProject`` as well as download
-and install grok and Zope 3 (the application server grok is built on).
-
-You can also get grok from the subversion repository::
-
- svn co svn://svn.zope.org/repos/main/grok/trunk grok
-
-Then follow the instructions of ``INSTALL.txt``.
+This module packages,
+separately from the mainline ``grok`` web framework module itself,
+the component auto-configuration tools
+that let Grok programmers avoid writing ZCML.
+With this module,
+basic Zope components like adapters and utilities can be written
+and then registered by providing Grok directives,
+instead of having to write ZCML.
Modified: grokcore.component/trunk/TODO.txt
===================================================================
--- grokcore.component/trunk/TODO.txt 2008-03-18 17:29:25 UTC (rev 84756)
+++ grokcore.component/trunk/TODO.txt 2008-03-18 18:54:53 UTC (rev 84757)
@@ -2,116 +2,5 @@
TODO
====
-Meta
-====
-
-- Check demo applications for issues with patterns (grok wiki, ldap address
- book)
-
-Core
-====
-
-- choice fields / sources (theuni)
-
-- testing strategy for the tutorial (faassen)
-
-- make it easier to write tests (wosc, faassen)
-
-- error reporting during grokking (provide file/line-number information
- on our extrinsically generated errors) (philikon)
-
-- What will happen if we make a utility a old style class and use the
- MRO stuff. Since we don't support non-persistent local utilities yet this
- may be a rare case.
-
-- What about local utilities that don't subclass persistent? Perhaps we
- can look for IPersistent and give an error if the utility doesn't
- state it is.
-
-- Change error messages: whenever we report about a callable, add
- () to the name. Core Python expections do this.
-
-- JSON support similar to XMLRPC.
-
-Schema/formlib support
-----------------------
-
-- support nested class 'fields' directly on a view (do we really want this?)
-
-- list form for grok.Container (w/ zc.table?)
-
-- delete action on list form
-
-- make formlib macros available in some form?
-
-- what about subclassing a model that has a 'fields'?
-
-Need to discuss
----------------
-
-- Do we want to ship Grok with a javascript library dependency such as
- MochiKit, to enable out of-the-box AJAX?
-
-- Make it even easier to set up the catalog (intids should be set up
- automatically if not already present. Perhaps Index grokkers?).
-
-- Testing support. Test grokkers?
-
-- Error pages: make it easy to register application-specific error
- pages for exceptions.
-
-- Easier queries: integrate hurry.query in some way?
-
-- fall back to a static resource that is defined in a package on a higher
- level if no static resource directory is defined locally in a package?
-
-- grok.grokkable (to allow grokking of imported things)
-
-- skins
-
-- form redirect
-
-- authentication (pau integration) (faassen)
-
-- sessions (get the session information for something, similar to
- annotations?)
-
-- menus - define a menu, associate a view with a menu (module-level,
- class-level)
-
-- making new widgets (faassen, philikon)
-
-- IMPORTANT: different strategies: grok.definefoo() versus n =
- grok.Foo(), watch out for consistency/symmetry/...
-
-- use ZCML's conflict resolution machinery; actions for Grok.
-
-- do not accept automatic template directory guessing convention for
- __init__.py, bail out with grok error instead?
-
-- grok.name, grok.template class restrictions (e.g. grok.template
- should only be usable from grok.View subclasses)
-
-- support grok.template(template) in addition to
- grok.template('name_of_template')?
-
-- support grok.resource on view class level?
-
-- should grok.context and grok.Model be order-dependent?
- (so their meaning becomes "below here, this is the context")
-
-- Do we want to initialize model attributes for any schema that the model
- implements (in addition to the initialization that is taking place for the
- model-level fields)?
-
-Punt
-----
-
-- making new fields
-
-- viewlets / content providers (LATER)
-
-- RDB - via extension: megrok.sqlalchemy for example - make it easy to
- go between the different schema implementations
-
-- containment constraints (wait for zope 3 to do them right)
+ - The testing infrastructure needs to be broken out into "grokcore.testing".
+ - The interfaces need to be broken out into "grokcore.inerfaces".
Modified: grokcore.component/trunk/buildout.cfg
===================================================================
--- grokcore.component/trunk/buildout.cfg 2008-03-18 17:29:25 UTC (rev 84756)
+++ grokcore.component/trunk/buildout.cfg 2008-03-18 18:54:53 UTC (rev 84757)
@@ -1,62 +1,15 @@
[buildout]
-develop = . doc grokwiki
-parts = docs interpreter grokwiki zopectl data test
+develop = .
+parts = interpreter test
find-links = http://download.zope.org/distribution/
extends = versions.cfg
versions = versions
-[docs]
-recipe = zc.recipe.egg
-eggs = grokdocs
-
[interpreter]
recipe = zc.recipe.egg
-eggs = grokwiki
+eggs = grokcore.component
interpreter = python
-[grokwiki]
-recipe = zc.zope3recipes>=0.5.3:application
-eggs = grokwiki
-site.zcml = <include package="grokwiki" />
- <include package="zope.app.twisted" />
-
- <unauthenticatedPrincipal id="zope.anybody"
- title="Unauthenticated User" />
- <unauthenticatedGroup id="zope.Anybody"
- title="Unauthenticated Users" />
- <authenticatedGroup id="zope.Authenticated"
- title="Authenticated Users" />
- <everybodyGroup id="zope.Everybody"
- title="All Users" />
- <principal id="zope.manager"
- title="Manager"
- login="grok"
- password_manager="Plain Text"
- password="grok"
- />
-
- <!-- Replace the following directive if you don't want
- public access -->
- <grant permission="zope.View"
- principal="zope.Anybody" />
- <grant permission="zope.app.dublincore.view"
- principal="zope.Anybody" />
-
- <role id="zope.Manager" title="Site Manager" />
- <role id="zope.Member" title="Site Member" />
- <grantAll role="zope.Manager" />
- <grant role="zope.Manager"
- principal="zope.manager" />
-
-[data]
-recipe = zc.recipe.filestorage
-
-# this section named so that the start/stop script is called bin/zopectl
-[zopectl]
-recipe = zc.zope3recipes:instance
-application = grokwiki
-zope.conf = ${data:zconfig}
-
[test]
recipe = zc.recipe.testrunner
eggs = grokcore.component
More information about the Checkins
mailing list