Tags: mkdolan/facade
Tags
The "Back to CLI roots" release This release brings new features and bug fixes. The most notable new feature is the addition of a CLI, which in theory makes the web UI (and its Apache/PHP dependencies) optional. Now in fact, the web UI is still much nicer to use, and provides prettier statistics on the fly. But if for some reason you don't want to use it (for example, if you just want to do a quick one-shot analysis) the CLI could work fine. The other notable change is one of policy. Previously whenever any changes affected the database, I revved the major version number. However, this seems a bit exceesive for database changes that don't break backwards compatibility. So now, changes which add features, tables, or columns without changing existing columns only require a minor release number. This will make it easier to make changes in the future, and save the major numbers for the big deals. Here is what happened in this release: * Added the Python-based CLI * Updated the release policy * Fixed database access when running cron jobs * Improved import/export of settings * Fixed a broken constraint in the database for tags * Tables are optimized when deleting projects and repos * Bug fixes on cache clears * Added an "install miminal dependencies" script Signed-off-by: Brian Warner <brian@bdwarner.com>
The "let's get organized" update Facade was written using Python for the backend, and PHP for the frontend. The frontend decision as purely about geting up and running quickly and easily. However, I really never intended for it to be permanent, or even necessary, to use the frontend as shipped. As such, there has always been a separation of duties between the code which does the actual work (facade-worker.py) and the code which feeds configs/displays results (the PHP stuff). It is entirely possible to replace the frontend with anything, so long as the proper data is fed into the database. This release consolidates the web frontend into its own subdirectory, to make this distinction even more clear. It is a change that will require manual intervention by a user. Basically, you need to edit your /etc/apache2/apache2.conf file and add 'web/' to the end of the Directory declaration, like this: <Directory /path/to/facade/> -> <Directory /path/to/facade/web/> Also your sites configuration file (probably /etc/apache2/sites-available/facade.conf) like this: DocumentRoot /path/to/facade/ -> DocumentRoot /path/to/facade/web/ This change is the result of some discussions as OSLS 2018 about using Facade as the backend source for data with an alternate frontend. This release also includes: * Caching of data by week, which augments the monthly and annual views * Minor improvements to the way filenames are handled internally, but this is a transparent change. There is currently no support to view weekly data in the web UI, but it's there in the database if you want to pull it directly. Signed-off-by: Brian Warner <brian@bdwarner.com>
Add multithreading support, saner databases, PyPy 4.0.0 of Facade includes a number of performance-enhancing features: * We can now do multithreading. This required a rework of how databases are handled to ensure we are threadsafe. * We can now use PyPy3 as the interpreter. It's still not clear that we gain performance from this, because it requires using the pymysql client and it's a bit slower. More testing will be needed, but on the plus side it's now possible to do comparison because it actually works. The reason for a major version increment was due to a change in the way the databases are accessed. We now use a more standard config file to store the credentials. Signed-off-by: Brian Warner <brian@bdwarner.com>
The Python 3 update This release is appropriately versioned, as it marks the update from Python 2 to Python 3. Basically, I got tired of handling Unicode issues. One of the biggest selling points is that Python 3 handles Unicode natively, making it a non-issue. This update means you will need to install some new dependencies. The install_deps.sh script will take care of that. This release also includes a database change, adding a new table and removing a column from repos. The purpose is to move the place that working commits are tracked into a table, allowing multiple commits to be tracked in parallel from a single repo. This is necessary if we eventually want to do multithreading. Signed-off-by: Brian Warner <brian@bdwarner.com>
Added some features, fixed some bugs: * Added ability to suppress results page, useful for public-facing instances * Added buttons to streamline addition of aliases/affilitions * Fixed issue where viewing an email yielded incorrect contribution data * Cleaned up some now-unused cache invalidation code Signed-off-by: Brian Warner <brian@bdwarner.com>
This release addes a few major features: * Database versioning * Transparent database version upgrades, just run facade-worker.py * Per-project cache management (required a change to the database) * A timeout period for updates, i.e. "Wait 24 hours before updating again" * Google Analytics tracking codes It also fixes a few bugs: * GitHub import is baaaaaaaack (and actually works now) * Older versions of cgit are now supported * results page no longer times out with big databases The timeout period enables new ways of using Facade. Previously, Facade would try to update everything, every time it ran. This meant it was best to run it once per day, to avoid thrashing the repos. Now that it knows not to retry updates if done within a certain time period, you can run Facade as often as you want. This makes it possible to see changes faster, while avoiding repo thrashes. Signed-off-by: Brian Warner <brian@bdwarner.com>
Minor updates: * Support for Google Analytics. Add your site code on the configuration page. * Fix issue brianwarner#18 with git repos having trailing slashes. * F 633C ix intermittent failure loading results page with large repos Signed-off-by: Brian Warner <brian@bdwarner.com>