## milestones

### 0.10

- added searching (like, body_like, desc_like params) and search field
- improved Unicode support; Unicode in titles and tags should now work
- added English descriptions of queries
- improved redirection after actions (edit, post, etc)
- improved RSS output
- added support for private entries (using a special tag)

### 0.08

- URIs like /~username/taglist now provide a faster way to get at simple queries
- When a post is edited, it redirects the user to his previous query when the revision is submitted.
- More things are now configurable:
  - Multiple entries per URI can now be made (if so configured).
  - The database username and password can be specified.
  - The default and maximum number of entries per page can be changed.
- The query-altering "related tags" links should now be easier to use.
- Some primitive (and fairly ugly) taglist filtering was added.
- The entries page now provides links to switch to or from long form.
- Entries provide a link to a listing of other entries for their URI, if more than one exists.
- Links to view unknown entries, or to edit entries that the user doesn't own, produce better error messages.
- Invalid entries produce better error messages.
- Numerous bugs were fixed. (Consult the changelog for details.)

### 0.06

- A few annoying bugs were fixed.

### 0.05

- regression testing

  Regression tests will be written. (Current coverage is around 30%, and that's largely due to POD coveage.)

### 0.04

- automatic user creation

  It should be possible to create users automatically upon login attempt. When coupled with HTTP authorization, this should allow intranet users to begin using a local Rubric seamlessly.

- refactored EntriesQuery

  Rubric::WebApp::EntriesQuery should only parse URIs and send result sets to the pager. (A renaming may be in order, too.) Another module should take natural parameters and produce result sets. It should be able to return errors on invalid queries and empty sets. (Future revisions should turn a query into English for display on error or as a title.)

- display user's tags on his post form
- a clearer notice on empty result sets

### 0.03

- subclassable login

  Rubric now includes a class (Rubric::WebApp::Login) that defines logic for accepting logins; subclasses for login via HTTP and via posted form data are also included. This change should make intranet Rubrics easier to implement.

- new query builder and /entries handler

  There was an 0.03 milestone to allow querying by date and time ranges. To implement this, a new query builder was written to replace Rubric::Entry->by_tag. Right now it's got its web bits and SQL bits all intertwined, but that will be fixed. The /user and /tag run modes were eliminated as such.

- fatals to browser

  Rubric now sends fatal error messages to the end user. This won't persist forever, but it will continue until Rubric is more mature and less likely to fail during normal use.

### 0.02

Release 0.02 fixed a HTTP header bug.

### 0.01

- a new database can be built
- an old database can always be upgraded
- new users can register accounts

  New accounts are verified via email. Registration can be disabled.

- users can change their email apress and password
- users can create, delete, and edit their entries

  Entries have a title and tags. They might have a link, description, and a long text body. A user only has one entry per link.

- users can copy the entries of other users
- entries can be queried by user or tag

  Anyone can search for entries based on the user who created them or the assigned tags.

- search results are available via rss

  Any search that can be performed via the normal HTML interface can be retrieved as RSS. The RSS links are announced on the HTML results.