All notable changes to this project will be documented in this file. Un-notable changes have already been forgotten by the time I went to write these notes. Obviously they weren't important, right? This project adheres to Semantic Versioning starting when version 1.0.0 is released.
- Prod support
- tons of scripts
- stuff and things. big stuff, ya know?
- Things for repositories
- avatars
- languages
- import status
- description
- Fixed navigation bar so mobile users will be able to interact with the multiselect.
- This involved more JS.
- Layouts in several sections were fixed for mobile viewing. I need help making these things look pretty.
- Randomized the array of repositories to refresh historical commits on. This should even out efforts when import jobs are interrupted.
- Branch name from Commits. It's hardly ever there and I have no plans for it.
- Meh
- meh
- Navbar
- Several unused chunks of code were removed and unnecessary stuff trimmed out somewhat.
- The navbar is now using
contianer-fluid
because it was beginning to feel crowded with everything pushed in towards the middle of the page. - This should leave room for more stuff that I plan to release in v1.1.0! (If I make it there, you know how it goes with these things..)
- Size of user avatars
- The user and repository pages have now had some more work done on them, they look less crappy now hopefully.
- Commit message filtering
- Filter words are now properly escaped so that they don't inadvertantly get parsed as part of the regular expression.
- Fixed some broken JS that interacted with query parameters. TBH I'm pretty sure there's a more elegant way to solve my problems with keeping a multiselect in sync with the page content across reloads. Ehhh, this works. If I hear about a better way I'll rewrite it.
- Truncating
- Commit messages, usernames, and repository names are all truncated to help keep the UI looking more consistent. This should hopefully fix the horrendous horizontal scrollbar crap.
- Caching
- I learned about some cache behaviors that make it reasonable to use
.as_json
on the results from ActiveRecord. There's more to tweak here. Filtersets run 50ms faster now that they have to make less DB queries.
- I learned about some cache behaviors that make it reasonable to use
- Keyword highlighting
- This uses javascript. A commit message:
I make this sacrifice for you, the readers of documents like this. The real users. The people who understand the struggle.
Hoooooly fuck. FUCK JAVASCRIPT THIS IS THE DEVIL'S LANGUAGE. I swear it was designed by post-lobotomy patients and monkeys. Uck I can't understand how anyone would *want* to choose to work in this language. Everything is completly fucky. /rage
- This uses javascript. A commit message:
- Overhauled Navbar Kindof
- Multiselect dropdown
- Allows users to select which
Category
they want to use. - I hate
JavaScript
. - Caveat: You cannot see unfiltered commits on the main page. Implementing that seems harder than it's worth due to the extra logic needed to figure out that someone specifically requested NO filters. Mainly because I don't feel like figuring it out right now, it's probably not that bad.
- This forced me to get creative with
SQL
and I found Scuttle.io to be extremely helpful in my quest to buildActiveRecord
queries. Funny how it usually goes the other way, but sometimes theSQL
is easier to figure out than AR relationship stuff when things get complicated.
- Allows users to select which
- Multiselect dropdown
- Several new default filters
- I built the list of words by hand for most of them so if you have any suggestions please make a PR to add to the lists!
- Controllers for models that shouldn't have controllers
- These are placeholders and will likely be removed later. Or maybe I'll flesh out the UI.. Who knows.
- New format for
Filtersets
- Now these
Filtersets
can be imported from a yaml file which is pretty slick. The import script automatically creates theCategory
if it doesn't exist already and
- Now these
- Caching in some places. Still need to do more caching in the views etc.
- The concept of "Whitelists" and "Blacklists" from Filtersets
- It was stupid and didn't make the filters any more usable. It added confusion to something that didn't need to be confusing.
- Default sort order for the index on
Commit
.utc_commit_time
. This might help performance. Maybe. Though I'm sure other parts of the app are un-optimized enough to negate any possible speed improvements gains. Oh well. - Some logging supression was disabled. They'll be squelched again soon.
-
Filtersets
- Based on principles from the Obscenity gem. I built blacklists (words that trigger the filter) and whitelists (words specifically ignored). The whitelist is a bit redundant but I'll revisit that later.
-
Filter Categories
- These will be used to classify
Filtersets
once I get more framework built out for that stuff.- I'm still deciding if it will be a good idea to let users submit filters and run them. Regardless I am building this project to make it easy to pull data out of commit messages so this is just a stepping stone.
- These will be used to classify
-
Fully async for processing commit messages
- Sidekiq is pretty sweet and was really easy to get up and running
- Various UI elements
- Sortable tables.
- Better user profiles
- Users have commits totaled.
- User avatars are more reliably fetched
- Timezone is automatically detected on first visit and stored in a cookie on the user's machine
- User name aliases
- Storing the committer names of users doesn't really add any value since we only care about usernames
- Too many features to remember
- Repositories now have pages that show all the users that have ever committed code.
- Tables can be sorted and show latest commit time from each user
- Repositories now have pages that show all the users that have ever committed code.
- Added this changelog and
README.md
. - Initial webpage layout. This is a work in progress for sure.