Releases: statedecoded/statedecoded
Releases · statedecoded/statedecoded
v1.0
This is the v1.0 release of The State Decoded.
- Created plugin system.
- Refactored file exports, added downloads for EPUB, PDF, Word, and others.
- Replaced PHP's SimpleXML with DomDocument for better handling of mixed content XML on imports.
- Finish editions support.
- Cleaned up import process for better visual display and error handling.
- Added full environment test and import abilities to the command line tool.
- Lots of visual tweaks and minor fixes.
Editions and Search Improvements
- Added support for multiple editions of a code in one database, to store revisions of the code over time.
- Created a generic search wrapper, fixed several search-related bugs.
- Moved to using Solarium to interface with Solr, eliminating the need for XSLT to transfer State Decoded XML to Solr XML.
- Made Solr optional, because getting it installed and running was too great an obstacle for many people. Users can now choose to use a more basic search system, built in MySQL.
- Versioned the database with migrations, which are stored in
includes/migrations
. - Included a new command line tool,
statedecoded
. It manages database migrations, and allows importing data from the command line. It is extensible—new tasks can be added inincludes/task/
. - Made various bug fixes and design tweaks.
- This will certainly break most installations. Review carefully the changes to
config-sample.inc.php
,class.State-sample.inc.php
, and the usage of thestatedecoded
tool.
Bug Fix and Court Opinions
- Fixed a bug that was causing bulk downloads to take a very long time to be generated.
- Added an interface to CourtListener's API to display court decisions relevant to each law.
- Created a metadata storage function to improve extensibility.
- Increase the size of tooltip text to improve legibility.
- Provided a series of small bug fixes.
Design and Search
- Conducted a complete user interface overhaul. Everything is different: SASS-based layout, a responsive design, a pluggable template system, and a great deal more.
- Conducted a complete overhaul of the code structure, adding a routing system and a permalinks table.
- Baked in support for Apache Solr, the best text indexing software available, to ingest and analyze all laws, and create a comprehensive search system.
- Added an API method for search.
- Created a heavily automated setup process, making it easy to install.
- Added a rigorous set of environmental tests to make sure that the server has all necessary software.
- Created support for non-unique section identifiers (e.g., when a § 100 exists in 10 different Titles within a single code), a major overhaul.
- Packaged a default home page, that looks good for any site right out of the box.
- Included a sample XSLT, to serve as a starting point for those who have XML that they need to get into The State Decoded's XML format.
- Tested The State Decoded in a wide variety of server configurations and made many modifications to ensure that it runs well under nearly all common environments.
- Added an entire workflow to handle new editions of legal codes, important for those codes that are updated frequently.
- Bulk downloads are automatically created, as plain text, JSON, and XML, along with a page for visitors to download them.
- Overhauled the administrative interface, adding a great deal of functionality.
- Builds a sitemap.xml automatically.
- Included Dublin Core tags in the HTML for each law, to support Zotero and similar software.
Optimizations
- Made extensive optimizations throughout the entire codebase and within MySQL, eliminating all sources of PHP errors of level E_NOTICE and above.
- Added support for import, storage, and display of arbitrary metadata fields.
- Added APC support, and implemented caching of API keys, constants, and templates.
- Added Varnish support, to clear the Varnish cache upon running the importer.
- Replaced MDB2 with PDO, eliminating an installation requirement and modernizing database connectivity.
- Replaced HTML Purifier with Tidy, which more servers are likely to have installed already.
- Added support for port numbers in site URLs, to facilitate development on Vagrant.
- Provided comments for all non-obvious database columns, to improve extensibility.
- Normalized all code along PEAR standardards, or at least our own variant of PEAR.
- Added Dublin Core metadata tags to each law, in case that's useful to somebody for something.
- Created the infrastructure for an extensible inline help text.
- Implemented keyboard navigation within laws and structures.
- Baked in support for Disqus-based commenting on each law page.
- Implemented a logger and debug system within the parser, to improve reporting and error handling.
- Added production of bulk plain text and JSON versions of laws.
- Reduced substantially the parser's memory usage, eliminating out-of-memory errors affecting larger legal codes.