0.8.0 (2015-04-05)
* Remove "already". Reads like a bug, when it should just be informational.
* Width limit for sidebar.
* Firefox misinterprets `whitespace:no-wrap` again.
* Fixed "TUV" link. And raise preview size to 120x90 now.
* Cut down the title length to 64 chars beforehand.
(New layout expands too much else.)
* Full sized preview image 160x120
* Fix spacing to header block.
Correct nowrap issue for title/version/datetime in .project headers (Firefox).
* Spread out project name letters further (ABC, DEF, GHIJ, KL, MN, OPQ, RS,
TUV, WXYZ, 0-9) to match up with current distribution.
* Mini template includes for new table #mainsplit and .container-width
* Updated stylesheet to use table-layout for #main/#sidebar split.
Padding still needs work.
* Autoupdate support for LaunchPad project URLs. (Uses `release_notes` field
from Launchpad devel API.)
* Fix launchpadlibrarian user image lookup, and github avatar url regex.
* Don't keep destroyed2 state.
* Allow only 1-letter proj_name suffixes.
* Omit `deleted` entrys from spotlight.
* Filter addition for spammy GitHub releases.
* Remove doubled `em` tag.
* Launchpad-releases for frontpage sidebar.
* Introduce `launchpad-releases` page.
Updated polling with less delay.
(So far only 30% of projects information received, less than 12% of release infos.)
* Make freecode/freshmeat.club just aliases of main freshcode.club domain.
* Updated user agent string with concrete version number.
* Workaround for session cookie / CF issues.
* DrChangelog: removed template rules,
added regex rule info for `changelog` module,
mention current github querying breakage.
* Experimental launchpad project+release polling.
(Not using OAuth, so decidedly slow-running; gonna take two weeks before it gets any results.)
* Friendlier placeholder page in case of SQLite locks / running update scripts.
* Add extra Unicode backtick to allowed input::_text filter.
* Make tag/ pages and search results NOINDEX for spiders.
* COLLATE NOCASE for version_exists() check
* Addition of redir/ script for obfuscated URLs (not sure if needed though).
* Addition of gtkapps, kdeapps, qtapps, cliapps to feed list.
* Detect other Twitter URL variations.
* Forum: threads with new submissions order on top now.
* Prevent recollapsing of forum entries when editing within the reply/form fields.
* Make actual timeout for session also 7 days.
* One-time SQL fixing scripts for submitter_image.
* Fix again (like the fifth time) the user image updating logic.
Partial $newdata submissions had $this[submitter] still empty, therefore
stripped previous user icon url/hash.
* Add opendesktop.org/gtkapps/kdeapps/etc. to frontpage sidebar
* Text: clear up that CC-BY-SA only covers the project description/text, not
the project itself
* Compare search term also against plain project `name`.
* UI-tag as 0.7.7
* Document new gravatar/identicon options @github / @sourceforge / @launchpad.
* Add ->nl newline conversion, ->f_version filter,
and url_user_icon() utilization (@github / @sourceforge / @launchpad),
keep local part from email-style (gravatar/etc.) submitter if plain nick is absent,
fix comparison to previous submitter name (else emptying `submitter_image`).
* Introduce `f_version()` filter to compact spaces, and strip leading "v".
Complexer `url_user_icon()` to convert @github, @sourceforge and @launchpad
user names to gravatar/user images.
* Set db()/SQlite timeout to 15sec.
* Update header_stats 3x per day
* Retain via: field from spooled entries,
spupport cmdline flag --now for instant insertions.
* Block `wagic` (auto-regenerated master release stamps).
* Added transactions as suggested by Lothar.
* No more .trimmed for github-releases sidebar block.
* Introduce `X-Content-License:` HTTP header.
* Security fix: unescaped original input in diff/page_rc.
* Remove redundant border=/align= from frontpage project index.
v0.7.6, readd header "beta" marker+color, Twitter icon in footer.
* Change explanation for `image` field ("leave empty" for autogenerated
homepage screenshot).
* Better description for versioned_url() regex pattern.
* Lessen delay for incoming/ imports to around 6 entries per day.
* Reveal incoming/ spool files in moderator stats.
* Updated description.
* Added contact mail address alternatively.
* p_key_value() with configurable \S+ placeholder,
used by lib/autoupdate to match exclude=1,2,3 versions.
Prepared import_spool for deferred / autoupdate-injected updates.
* Switch uneeded include() for readfile(), all feed templates are static.
* Raise delay to around 4 hours. (3 was too frequent.)
* Five tags maximum copied per tweet (still shuffled), JSON API debug msg.
* Add allowed `,` separator to cron specifiers.
* Add #flags/#incoming count to stats (for moderators).
* Add linuxgamenews.biz as news source.
* Introduce `IS_ADMIN` shortcut, header stats for moderator infos,
fix flagged entry clearing.
* Decode sourceforge URLs to skip %20 for version extraction, also try to
capture -beta and -rc suffixes.
* Omit tags with just one reference from tag"cloud"; scale text down a bit.
* Rename QPL to QtPL
* Automated cronjob re-registration from `x-cron:` plugin meta fields.
* Switch to raw `twurl` requests for Twitter updates, as that allows to
embed screenshots easily.
0.7.5 (2014-11-19)
* Beta stage, declare version 0.7.5.
* versioned_urls: Permit version-tuple access ("$version0-$version1-$version2")
as well.
* Add 0.7 DB scheme extensions: via, editor_note, autoupdate_delay
* Switch to manual dependency loading
* Xfer cron.job for freshcode.clb JSON feed importing.
* empty default files
* Exchange feed selection, add template stubs
* Allow direct invocations, remove [END] and API mapping.
* Remove uneeded pages, cron-jobs, doc/*, templates for FC-mirrors.
* Empty default SQlite store (for mirroring)
* Create new branch named "mirror"
* Current (0.7.5) sqlite database scheme (added: via, editor_note, autoupdate_delay)
* New links to Linux Games DB, Gtk-Apps, openDesktop, Portable Linux Games,
TuxArena, LinuxSoftNews.WP, and FOSSHUB.
* Forgotten fix to manually split up projectname.ext
which the recent change to allow language-suffixes necessitates.
($ext will no longer consume .json or .rss and .atom by itself).
* Revert back to slightly more spacing between project title, description,
release notes, and tag list.
* Reduce extracted ::scope_tags() per unique()
* Twitter feed of recent releases.
* CSS for audio tag, .editor_note (submit form), more narrow frontpage listings,
styles for "GitHub releases" entries.
* Introduction of releases `via` (= "form", "api" or "autoupdate" and "spool")
and `editor_note` fields (raw HTML, displayed per-project in /submit form).
* Added plugin meta for current cron hook timing.
* Added plugin meta for current cron hook timing.
More elaborate import-delay calculation. Field `description` condensed.
* Added plugin meta for current cron hook timing.
Output html attributes now double-quoted (plain htmlspecialchars usage),
more constrained github.releases SELECT.
* Allow singular language .suffix in proj_name() identifiers.
New gimmick: "theme-song" in URLs will transform into HTML5 <audio> (specifically for OpenBSD entry).
* Add github-releases to RewriteRule dispatcher,
config: set default user-agent string for cURL *and* PHP streams.
* Add CloudFlare and DB statistics to frontpage (replacing no-ads whitebox).
* For absent results, allow singular ->property_row access to silently return NULL.
* Avoid lengthy loops with SQL SELECT queries in cron jobs, to eschew SQLite
database locking up meanwhile.
* GitHub/Archive/API polling job.
* Add GitHub/Archive list and cache database polling.
* Split news feeds and fossies.org scraping.
* int typecast for revision date display
* Hide (only log) absent session/admin flag
* raise to 150 character description for project name list
* Fix project-name normalization for raw incoming/pool imports.
* Introduce structured metadata (HTML5 itemscope/itemtype) for Google display.
* Add beOpen to news and page_links
* Print full license name as title= attribute for tags.
* Fix version-cleanup for release::exists() check, again.
* allow up to 22 entries from fossies.org
* Fix spool for partial updating (instead of overwriting new entries).
* Switch to current working directory in config.php, to avoid relative path
handling in cron scripts.
* Add implicit SourceForge= url for SF-imports.
* Highlight every major N.0.0 project release.
* Prepared submissions from incoming/ text files.
* Add title=description to list of project /names.
* Renamed feed names to just /projects.rss|atom|json (instead of internal
/projects/xfer.rss|atom|etc).
* Add input::nl() newline filter (normalize CRLF to just LF)
* Added MPL-1
* Normalize version number for release::exists() check (to avoid mismatch
for autoupdate, which probes existing versions before inserting new release)
* Merge `description` and `changes` for RSS feeds.
* RSS skipHours, fixed ?ext= handling for Atom (gonna get dropped however),
and some HTTP cache-control
* initialize empty $_SESSION array either way
* Missing `event` argument for .preventDefault() in forum callback
* Capture non-existant favicon.ico (log is growing excessively else)
0.7.0 (2014-08-29)
* More colorization for index links, default css color classes,
a few more links/
* Filter out deleted and hidden release from feeds.
* Capture OpenID failures (still not working with self-signed certs).
* Convert relative links into /root based resources.
Try base href=/index.
(Googlebot tripped over something).
* Add formatted timestamp to log.
Unpack project_tags array.
Use `deleted` flag instead of `hidden` per default, unset both on submitting new revision.
Map homepage on GET /urls, and accept "website" as alias when populating afresh.
Remove `submitter_image` unless authorized,
and rename with_permission() to requires_permission().
* Reintroduced API logging.
Names in Other URLs field are no longer lowercased.
* Reordered index sidebar blocks (new fossies.org links)
* Added specific extractor for fossies.org,
copies dates along (like for DistroWatch),
and retains summary as link title=
* Display matching project (per tag or exact search phrase) as full release entry
instead of search excerpt.
* Fix version regex for sourceforge feed.
* Use 10 release.tags for populating `tags` table.
Plain arrays, reduce SQL result set.
* Limit /RC to 100 entries per page.
* Allow .json as explicit feed/ suffix.
* Fix default $value to $map[] assignment
* remove obsolete include(lib/openid.php)
* Add tags, submitter and urls for extraction;
default to `name-releases.json` for export file.
* Project extraction cmdline tool for freecode.com produces a `releases.json`
for easy importing of previous releases per Autoupdate.
* Relax editing timeframe for empty versions,
also don't apply anyway if it's just an edit for version-less projects.
* Reduce flagging impact (minimum of 2 before flagging opacity on frontpage
sets in, to allow for project-owner flags)
* Split up letter ranges (O-Q and R-T)
* Frontpage project entry opacity based on `flag`
(so flagging gives visual fallback for first votes, until entry is gone.)
* Added a few more project hosters/forges.
* Missing $data parameter for release{} update post-checks.
* $image instead of $miniature for forum post editing, as to not show prior
encoded URL, but only default gravatar email if any.
* Mention /?format=rss shortcuts for feeds (inherited from freecode)
* Smoother forum post unfolding,
double escaping for edits removed.
* Colorize meta/forum link.
* Add db() placeholder documentation ASCII table.
* ::http filter was too strict (leading numbers in URLs)
* Add curl()->assert() to be run after ->exec()
* Invalid autoupdate() invocation
* Stop lowercasing project URLs.
0.6.5 (2014-08-11)
* Use non-autoupdating autoloader.
* Add basic /meta forum, separate handler and database structure.
* Split Browser Projects by Tag into /names and /tags links.
* Introduce project /names browsing.
* Filtering also sourceforge project links (recurring changesto same project dump).
* Introduced config.local.php, so primary config can match check-in.
0.6.0 (2014-08-08)
* Debugging output $project->update() wrapper for DrChangelog
(also fixed lib/autoupdate.php _rxu rule extraction order.)
* Reduced number of url-label= examples for empty submit form.
* Make `$version` replacement work on complete text input (RegExp/g)
* Using diff now for /admin pages and /rc
* Reordered gallery, added Fossies.org
* Add /rc page (RecentChanges diff)
* Externalized update_rules() - which currently just hides previously
submitted empty-version project entries.
* Added img alt= Unicode glyphs for homepage/download
* Allow search to look for multiple licenses.
* Removed manual curl() loading.
* Added popup samples for Dr.Changelog
* Added small #search_q box in #tools header
* Split out gravatar email into separate database field `submitter_image`.
(In templates still called `submitter_img` however.)
* Updated autoupdate testing descriptions.
* Introduced "Dr.ChangeLog" for testing autoupdate rulesets
(regex,xpath,jquery release notes scraping).
* Three new gallery links: IceWalkers, OpenHatch, OpenSourceArcade
* Make ->list not forgo absent keys, but substitute values with NULL.
* Added "Project Spotlight" to page footer, and a cron-job for rotating 3
random projects in there.
* Moved defaults into static ::$defaults to also override UserAgent
* DW in sidebar, a bit more API feed filtering
* Introduced non-placeholder example key=url list for `Other URLs` in
submit form; also better filtering prior display.
* added DistroWatch feed and general version number highlighting
* New additions: Linux AppFinder, Find Best OpenSource, FOSS Wiki, Libre Projects,
and Zwodnik, a few more links in the sidebar.
* Patched fc-submit for Python3 and using `requests` instead of `urllib2`;
which is kind of necessary due to required SNI for SSL/TLS,
usage of verify=cacert.pem should be possibly patched in as well
* Made `?auth_code` optional for dispatching onto freecode API handler
(else it would show up regular page instead of filtered JSON).
* Query only last revision for tags.
* Remove debugging output.
0.5.5 (2014-07-30)
* New revisions with version number will now hide previous entries without.
* URL updating verified for function, also updates separate homepage and download
fields now
* freecode-submit with minor adaptions for freshcode.club
* freecode-submit 2.9
* API handler now supports some of the FC-3 interface, including update_core,
publish, and withdraw, and URL reading.
Made release{} partial updates look into the right data source for name+version.
* Remove extraneous GROUP BY name, which broken [release_versions] order
* Add ::scope_tags() and ::state_tag() extraction helper
* initial API handler (just GET/query project info as of now)
* Add colorization to trove list
* Switch __get to parent::offsetGet
* Add data-tag=$key on trove list optgroup
* Revert autoupdate_module dropdown for autoselection.
* Fix prepared $trove[] passing by typecasting COUNT() comparison with 1*?
* Fixed feed aliases (due to RewriteRule recursion)
* Introduce Trove tag selection on page_tags,
tags: removed some natural languages, added new programming languages.
Add JS .action links in submit page.
HTML5shim for IE in header.
* Utilize new :* expression placeholder for search query
(binding though does not work for count()=? for some reason)
* Introduced Trove-tags select box.
* Added sourceforge project import,
and allow PKG_INFO to understand LSM, Debian control files, and RPM spec
* urlencode() tags links
* Too many args for into() wrapper
(should better use reflection after all..)
* Allowed optgroups for select_form_options generator.
* initial Trove map
* Updated ::map_license and ::trove_to_tags
* Template for frontpage listings
0.5 (2014-07-23)
* New logo, initial tags:: handling, canonic autoloader (shared.phar).
* Introduce language-specific links (Accept-Language),
and Javascript confirm() for StackExchange sites.
* Move /submit form into template/submit_*
and introduce project imports (DOAP, JSON, PKG-INFO, freecode)
* Move tags handling into separate tags:: module.
* updated autoloader map
* removed manual include(lib/feeder)
* Expanding posts in forum/
* Reallowed numbers for start of project id
* Fixed `key` quoting for expand_assoc_*
* repackaged HtmlPurifier
* Openfontlibrary added links gallery
* linuxgames and sourceforge-files added
* Frontpage feeds now feature linuxgames, sourceforge-files
* moved img/logo.png
* prepare for forum/
* package external lib/ into zip-phars
* (no comment)
* Restructured db_wrap{} and :* expression substitution.
* More optional parameters for ->into() wrapping
* Default user agent.
* Trivial error message page.
* Spaces in wrap_tags() links.
Optional $$version substitution prefix.
CSRF token filter fixed to ->name (instead of ->id).
* Restructured per-project db() query to be only issued once,
fallback message for non-existent pages.
* Unescaped delimiter in strip_markup
* Honor "hidden" flag on frontpage.
* Allow `$version` URL placeholder to substitute dots with e.g. `$_$version`
* Allow $title injection, make links protocol-relative.
* Add project name to $title.
* Fix "hidden" flag generation, take $prefill_flags into accounts.
* Fixed RSS/Atom pubDate injection.
* Use subquery for tags search, opacity & font-size for search entry `smallify`
* Proper tags normalization (f_tags input filter)
* Adapt links from /tag/xy to /search?tag=
and ?user= link now to /search.
* Introduce search/ function.
* Move JS functionality out of template/header, to prepare for tags-editing
* Moved projects_ and index_ output into template/
Made pagination() reusable into aux.php
* Remove [x] And it's not spam checkbox (not descriptive, and faux form
catcher sufficient). Use <code> and <var> for some field docs.
* p_key_value_rx() now only in Autoupdate{}
* Add ->into() now when retrieving ArrayObject results.
* Move preg_replace_callbacks into methods
* Split out some templates/ from projects/ description.
* Workaround [END] for Apache 2.2
* Reuse API I-O to fetch social bookmarking counts.
0.4.5 (2014-07-10)
* Minor presentational fixes.
* Add pagination, use 40 per page for now (Freecode had around 25);
later introduce auto-scrolling jquery..
* Fix version ->exists() check (always returned 0 due to UNION workaround)
* Introduce doc/ directory, also for sources etc.
* Introduced constrained,
nicer SQL table definition export.
* Workaround for linux.com broken encoding.
* Added social share counter output.
Fixed "csrf" typo; yes, again.
* Moved to lib/
* Allow @ in ->text() filter
* Added atom/rss feed aliases
* new links http://www.opensourcescripts.com/ and http://www.linuxgames.com/
* Fixed dangling db_identifier() reference
* Gravatar image added.
* Explain link scheme in detail.
* Added gravatar support for submitter name.
* Prepare partial update() from Autoupdate
* Commercial script directories removed.
0.4 (2014-07-08)
* Copy current sidebar setup of //freshcode.club
* Introduce ./template/
* Cut off at 7 tags.
* ./lib/ movement
* Fixed license moniker typo "LPGL", and typo in csrf() array,
versioned_urls regex to check for \b and underscore,
lowercase p_key_value arrays, allow hyphens in keys,
→
* Switched to standard db()-foreach instead of pdo::fetchAll()
* Dependencies in /lib
* Opacity for absent download link targets,
Shadow border for /links images,
and #sidebar .absolute-foat alternative
* Removed white background pixels.
* Favicon, version meta, and $header_add for injected RSS/Atom links.
* Fixed project ID maiming, and release sorting.
Added RSS/Atom injection.
* Now utilizing release{} for update logic.
* Added ?ext=format support,
prevent direct *.php invocation using [END] rule (requires Apache 2.4),
so only virtual resource names /project/etc can be invoked and mod_rewrite
hence pre-filters allowable project IDs.
* Added Atom/RSS output support
* Removed commercial links, prepared for some generic community link groups in
the sidebar.
* Utility code moved into lib/
* Slight restructuring of db() hybrid method to shadow db_wrap{} class
* Use arctan for proportions
* Consolidate release/project database interaction.
* lowercase tags, scope, state fields,
add csrf(),
fix openid copying as submitter_openid
* Fixed /login link
* prepared minimal CSRF token use
* Fixed `wrapping` for db_identifiers.
* Use custom `proj_name` input filter (keep dashes in project-name, but
lowercase implicitly)
* adapt db() queries to reuse `release_versions` or alike subset.
* Add ?num= param for /feed/xfer
* Introduce a coarse `strip_markup` filter, only for common presentational HTML
(no `strip_tags` substitute, leaves lone angle brackets alone)
* Make shadow a bit stronger again for /links page.
* Make login required for /flag in either case.
* Precautiously add a little spambot diversion.
* (no comment)
0.3 (2014-06-30)
* curl() wrapper
* Populate `tags` table.
* Moved utility code to (misnomer) layout_aux.
* Utilize HTML5 pattern= regex and maxlength= validation, nicer help texts added,
select_form_fields now preserves default non-standard values,
$licenses had been moved to config.php,
and input form data and field formats are now constrained individually.
* Reimplemented `key` wrapping, rename ->broken to ->in_clause (also not
needed with current SQlite anymore), and display PCRE /e with _callback.
* `tags` table
* Added jQuery and .trimmed sections hooks.
* Added logout facility, JS links to populate form with a few common OpenID
providers, and unsets some $_SESSION fields here instead.
* social media buttons
* Add empty `name` and `openid` defaults for uninitialized session.
* Capture /login page as well.
* Removed/fixed default * selector overrideing font sizes,
styling for /links gallery, social media buttons, .trimmed project summaries.
* Utilize release_versions view, add social media share links.
* Smaller icons for changes and tags.
* callStatic filtering now without prefix
* Add optional /login page.
* Switch to AGPL for now,
utilize new `release_versions` view.
* Tag cloud and searching projects via split-up `tags` table;
proportional need a better quantification formula.
* Link list is now a board of buttons.
* Initial exchange format /feed/xfer and per-project /feed/linux JSON release lists.
* New indexes and views.
* config.php placeholder
* Add [license] drop down menu with abbreviated names
* Remove debugging output in session, prettify login box,
input::has() and ::no() correctly accept list of key names,
add jquery
0.1 (2014-06-25)
* Initial website implementation: project submit, index listing, projects/
page, and moderation flags.
* initial empty check-in