text:
Bolt 3.0.0 beta 3
-----------------

Released 2016-04-19. Notable changes:

 - Added: Add omnisearch test [#5203](https://github.com/bolt/bolt/pull/5203)
 - Change: Change the 'About' link in the profiler to a slightly more useful 'Dashboard' link. [#5174](https://github.com/bolt/bolt/pull/5174)
 - Change: Move "Possible field types" in config.yml [#5176](https://github.com/bolt/bolt/pull/5176)
 - Change: Put the 'template select' in the "Template" tab, where it makes most sense [#5160](https://github.com/bolt/bolt/pull/5160)
 - Change: Rename chapter taxonomy example to group [#5169](https://github.com/bolt/bolt/pull/5169)
 - Change: Set session.save_path to a hidden directory, to persist after flush [#5154](https://github.com/bolt/bolt/pull/5154)
 - Change: Show better log message for "failed login attempt". [#5177](https://github.com/bolt/bolt/pull/5177)
 - Change: Updating base-2016 dependencies [#5175](https://github.com/bolt/bolt/pull/5175)
 - Change: Various theme improvements [#5189](https://github.com/bolt/bolt/pull/5189)
 - Deprecation: Remove livereload settings from config.yml and _page.twig [#5166](https://github.com/bolt/bolt/pull/5166)
 - Deprecation: Remove number from contenttypes.yml [#5167](https://github.com/bolt/bolt/pull/5167)
 - Fixed: A few issues regarding database constraints. [#5207](https://github.com/bolt/bolt/pull/5207), [#5219](https://github.com/bolt/bolt/pull/5219), [#5224](https://github.com/bolt/bolt/pull/5224)
 - Fixed: Adding missing .control-label class to fields, markdown, image, imagelist and textarea [#5200](https://github.com/bolt/bolt/pull/5200)
 - Fixed: Bad default values for list types [#5221](https://github.com/bolt/bolt/pull/5221)
 - Fixed: Don't re-fetch record on preview [#5151](https://github.com/bolt/bolt/pull/5151)
 - Fixed: Don't throw a fatal exception on missing table [#5223](https://github.com/bolt/bolt/pull/5223)
 - Fixed: Fix default value for select contenttype [#5187](https://github.com/bolt/bolt/pull/5187)
 - Fixed: Fix for recursive join bug in repeaters [#5216](https://github.com/bolt/bolt/pull/5216)
 - Fixed: JS Fix for imagelists in templatefields [#5188](https://github.com/bolt/bolt/pull/5188)
 - Fixed: Look for template files in deeper folders. [#5217](https://github.com/bolt/bolt/pull/5217)
 - Fixed: Only force enabling user entity on first user creation [#5208](https://github.com/bolt/bolt/pull/5208)
 - Fixed: Reset moved ckeditor instances in repeaters [#5171](https://github.com/bolt/bolt/pull/5171)
 - Fixed: Show folders in ck_files template [#5147](https://github.com/bolt/bolt/pull/5147)
 - Fixed: Strip tags from useragent. (minor security issue) [#5178](https://github.com/bolt/bolt/pull/5178)
 - Fixed: Temporary hack to get the permission name associated with the route [#5202](https://github.com/bolt/bolt/pull/5202)
 - Fixed: Use right syntax for Omnisearch templates [#5192](https://github.com/bolt/bolt/pull/5192)
 - Travis: Composer install testing [#5150](https://github.com/bolt/bolt/pull/5150)

Bolt 3.0.0 beta 2
-----------------

Released 2016-04-08. Notable changes:

 - Fixed: Prefix branding path with root URL [#5136](https://github.com/bolt/bolt/pull/5136)
 - Fixed: Improve Select Queries Across Joins [#5128](https://github.com/bolt/bolt/pull/5128)
 - Fixed: Fix for [#5009](https://github.com/bolt/bolt/pull/5009) – Can't delete a record from dashboard listing [#5131](https://github.com/bolt/bolt/pull/5131)
 - Fixed: Fix contenttype listing blocks [#5133](https://github.com/bolt/bolt/pull/5133)
 - Fixed: Fix domain cookie value with http port [#5115](https://github.com/bolt/bolt/pull/5115)
 - Fixed: Extend services… and actually return the service [#5089](https://github.com/bolt/bolt/pull/5089)
 - Fixed: Loop inside the closure [#5090](https://github.com/bolt/bolt/pull/5090)
 - Fixed: Some minor Theme fixes. [#5092](https://github.com/bolt/bolt/pull/5092)
 - Fixed: Setting the `lang` attribute of the `<html>` tag. [#5096](https://github.com/bolt/bolt/pull/5096)
 - Fixed: Fix overwriting of key variable for repeating field metadata [#5099](https://github.com/bolt/bolt/pull/5099)
 - Fixed: Don't return nbsp in ImageHandler [#5100](https://github.com/bolt/bolt/pull/5100)
 - Fixed: Setting the `lang` attribute of the `<html>` tag. [#5096](https://github.com/bolt/bolt/pull/5096)
 - Fixed: Removing `default` and `base-2014` themes. Only `base-2016` should stay. [#5093](https://github.com/bolt/bolt/pull/5093)
 - Fixed: Hotfix storage trait [#5106](https://github.com/bolt/bolt/pull/5106)
 - Fixed: Suggestion for better text in case the 'about-us' block is missing. [#5116](https://github.com/bolt/bolt/pull/5116)
 - Fixed: Fix named templatefields without burning the whole thing down 🚒 [#5127](https://github.com/bolt/bolt/pull#5127)
 - Fixed: Clarify the _sub_fields.twig defaults file. [#5120](https://github.com/bolt/bolt/pull/5120)
 - Fixed: Update Composer version constraint for stable version [#5129](https://github.com/bolt/bolt/pull/5129)
 - Fixed: Migrate password hash on login [#5132](https://github.com/bolt/bolt/pull/5132)
 - Fixed: Properly check if templatefields are still present. [#5139](https://github.com/bolt/bolt/pull/5139)
 - Fixed: Don't `dump()` unless logged on, or debug_show_loggedoff is set. [#5138](https://github.com/bolt/bolt/pull/5138)
 - Fixed: Prioritise HTTP_HOST over SERVER_NAME [#5140](https://github.com/bolt/bolt/pull/5140)
 - Fixed: Fix Upload Button for Templatefields [#5141](https://github.com/bolt/bolt/pull/5141)
 - Fixed: Assets… Remove outdated v2 functionality [#5144](https://github.com/bolt/bolt/pull/5144)
 - Fixed: Theme improvements [#5145](https://github.com/bolt/bolt/pull/5145)
 - Fixed: Base 2016/minor tweaks [#5148](https://github.com/bolt/bolt/pull/5148)
 - Fixed: Updating theme.yml [#5149](https://github.com/bolt/bolt/pull/5149)

Bolt 3.0.0 beta 1
-----------------

Released 2016-03-26. Notable changes:

 - So much new things, first release of majow new version. See: https://bolt.cm/newsitem/bolt-3-beta-1

Bolt 2.2.20
-----------

Released 2016-04-19. Notable changes:

 - Fixed: templates output `{{ dump() }}` when not logged in. (See #5122)
 - Change: Better log messages for failed login attempts (See #5197)
 - Fixed: Strip tags from useragent. (minor security issue) ((See #5179)
 - Fixed: Fix issue with imagelists not updating due to event checking. (See #5159)
 - Change: Update Composer version constraint for stable version (See #5130)
 - Fix: Only skip htmlsnippets if we are returning a cached response (See #5121)
 - [Travis] Ensure that Composer install is built against Bolt 2.2 (See #5118)
 - Move create factory to the start of setup in src/Composer/PackageManager (See #5048)

Bolt 2.2.19
-----------

Released 2016-03-11. Notable changes:

 - Updated: Updating bundled Javascript modules and libraries
 - Updating dependencies (most notable, Foundation 5.5.3) (See #4856)
 - Fix: Locking some more Symfony packages to Symfony 2.6.x, for PHP 5.3.3 compatibility (See #4984)
 - Fix: Imagehandler updates and bugfixes (See #4973)
 - Fix: Prevent duplicate content for paging requests (See #4981)
 - Updated: Spanish Translation (See #4958)
 - Updated: Set the Composer requirement to ^1.0@beta (See #4955)
 - Fix: Fix Config Setting for certain options in config.yml (See #4940)
 - Change: Set default error reporting to ignore 'warnings' (See #4926)
 - Fix for image/file list blur (See #4923)
 - Added: Multiple file select when "picking from server" (See #4879)
 - Added the search dialog to the standalone file editor interface (See #4890)
 - Fix: Add a default value for checkboxes (See #4869)
 - Fix: PackageManager ping 504 Gateway Time-out (See #4735)
 - Fix: Dashboardnews 504 Gateway Time-out (See #4734)
 - [in PL1] Fixed: Checkbox displays wrong value directly after saving (See #4997)

Bolt 2.2.18
-----------

Released 2016-02-08. Notable changes:

 - Fix: Fix select fields in templatefields (See #4759)
 - Fix: Now possible to set a page size for a taxonomy listing (see #4822)
 - Fix: Viewing a preview of a record clears the unsaved record warning (See #4640)
 - Fix: Don't use value on checkbox, and set with prop (See #4777)
 - Change: Allow to set context for custom Twig functions and filters (See #4779)
 - Change: Update `MenuBuilder.php`, don't do unneeded hydration on menu items. (See #4791)
 - Fix: Fixes "non-interactive configuration" of composer-install by providing extra vars in composer.json (see #4750)
 - Fix: Update form_div_layout.html.twig (see #4795)

Bolt 2.2.17
-----------

Released 2016-01-27. Notable changes:

 - Fix: No href around '…'-placeholders in pagers. (See #4650)
 - Fix: Templatefields in 'Viewless' records work correctly now (#4653)
 - Change: Move `NutSP::addCommand` to `$app['nut.commands.add']` so it's not "static" (#4662)
 - Fix: Don't whitescreen on a response with a Twig exception (#4668)
 - Fix: Don't try writing to vendor on composer installs (#4677)
 - Added: Added capability to set an amount of requested records for specific kind of taxonomy. (#4691)
 - Change: Generate preview route from url generator. (See #4697)
 - Change: Add JS events to editfile/editcontent ajax saving. (#4720)
 - Fix: Block access to `.git` folders in `.htaccess`. (#4749)

Bolt 2.2.16
-----------

Released 2016-01-01. Notable changes:

 - Change: Updating .gitignore. Add PHPstorm cruft. (See #4621)
 - Change: Themes use `theme.yml` now, fallback to old `config.yml` (See #4414)
 - Fixed: Fixed a 'Catchable Error' in the `record.twig` template for the old 'default' theme (#4645)
 - Updated: A few Bower / Grunt modules were updated, and all JS / CSS rebuilt (See #4647)

Bolt 2.2.15
-----------

Released 2015-12-29. Notable changes:

 - Fixed: Exception is no longer thrown when editing an empty config file or template. (See #4636)
 - Added: Add custom sidebar groups for contenttypes. (Backport of #3793)
 - Fixed: Don't re-sort taxonomy listing pages, if the taxonomy has `has_sortorder` (See #4601)
 - Fixed: Add JSON to list of denied file types for Apache (See #4610) [security]
 - Fixed: Fix/more spinners and missing icons (See #4573)
 - Fixed: Sidebar Height Resize Issue (See #4573)
 - Fixed: Fix preview unpublished content (See #4544)

Bolt 2.2.14
-----------

Released 2015-11-27. Notable changes:

 - Updated: Symfony components updated to 2.6.12
 - Fixed: Determine web profiler location using Extension rather than bundle (See #4432)
 - Fixed: No scrolling panes on "View Users" page. (See #4438)
 - Fixed: Limit user agent strings to 128 characters on persist. (See #4413)
 - Fixed: Fix alt and title tags for popup & showimage, height/width for showImage (See #4231)
 - Fixed: Make 'required' for `type: select` fields work. (See: #4420)
 - Fixed: Replace `☰` for `≡ `for better supported unicode on Android. (see #4388)
 - Regex that insert snippets not working when </head> does not starts the line.  #4367
 - Changed: Set `composer/composer` to dev stability. (See #4345)
 - Fixed: Fixed priority issue in assets (See #4343)
 - Fixed: Fixing reordering images in an ImageList. (See #3573)
 - Fixed: Retrieve existing relations before setting them from POST. Fixes "No related entries on preview" issue. (See #4340)
 - Fixed: Handle save status transition (See #4326)
 - Added: Allow the `notfound:` status to point to a static template, instead of a contenttype record.
 - Fixed: Don't insert Bolt meta tags on AJAX requests (See #4297)
 - Fixed: Put correct cannonical link into html head on paging content request
 - Fixed: Increase z-index, so popups cover `{{ dump() }}` output.

Bolt 2.2.13
-----------

Released 2015-10-07. Notable changes:

- Fixed: Taxonomies being wiped on status change using grouped taxonomy. (See #3868)
- Fixed: Add edit permission to the `modifiable` property (See #4198)
- Added: Allow height and autocomplete in categories taxonomies.
- Added: Allow for 'type: hidden' fields in `contenttypes.yml`
- Added: Allow the theme's `config.yml` to set add_jquery. Fixes #4098
- Added: Optionally allow spaces in tags.
- Updated: Updating UIkit(2.22), CodeMirror and Marked.js
- Changed: Ignore theme directory except for base-* and default
- Changed: Use tag names instead of slugs for autocomplete and tag cloud. #4125
- Changed: Strip periods, commas, colons & semi-colons from prefill titles
- Changed: date-time format uses a more i18n-friendly format (See #4053)
- Changed: Moving 'Install new extension' to the top of the screen.
- Fixed: Don't sort getContent in listing view, when the contenttype has a taxonomy that has a sortorder.
- Fixed: Don't show (non working) drag'n'drop in list overviews.
- Fixed: Fix the info text for imagelist fields (See #4051)
- Fixed: Fix to #3991 – Geolocation snaps pin to matched address.
- Fixed: No links for records that are 'viewless'. Fixes #3999 for [2.2]
- Fixed: [2.2] Allow non-strings as query parameters with pager. issue #4109
- Fixed: "Timed publish" fixed for SQLITE (Now using a `DateTime` object instead of `CURRENT_TIMESTAMP`)
- Fixed: Fix: Don't show notice about `mailoptions` when not logged on.
- Fixed: Alignment of #navpage-secondary menu item icons in FireFox. (See #4178)
- Fixed: Strip tags from `<title>` in editcontent. Fixes: #3590.
- Fixed: Fix secondary nav element's class not being output in certain cases.

Bolt 2.2.12
-----------

Not yet released. Notable changes:

- Added: Allow height and autocomplete in categories taxonomies.
- Added: Allow for 'type: hidden' fields in `contenttypes.yml`
- Added: Allow the theme's `config.yml` to set add_jquery. Fixes #4098
- Added: Optionally allow spaces in tags.
- Updated: Updating UIkit(2.22), CodeMirror and Marked.js
- Changed: Ignore theme directory except for base-* and default
- Changed: Use tag names instead of slugs for autocomplete and tag cloud. #4125
- Changed: Strip periods, commas, colons & semi-colons from prefill titles
- Changed: date-time format uses a more i18n-friendly format (See #4053)
- Changed: Moving 'Install new extension' to the top of the screen.
- Fixed: Don't sort getContent in listing view, when the contenttype has a taxonomy that has a sortorder.
- Fixed: Use hydration for `{{ record.previous() }}` and `{{ record.next() }}`, so routes that use taxonmies in slugs work correctly. (see #4193)
- Fixed: Don't override "templatechosen" if previously set. Makes sure the correct template is shown in the Twig nub in the Toolbar. (see #4191)
- Fixed: Don't show (non working) drag'n'drop in list overviews.
- Fixed: Fix the info text for imagelist fields (See #4051)
- Fixed: Fix to #3991 – Geolocation snaps pin to matched address.
- Fixed: No links for records that are 'viewless'. Fixes #3999 for [2.2]
- Fixed: [2.2] Allow non-strings as query parameters with pager. issue #4109
- Fixed: "Timed publish" fixed for SQLITE (Now using a `DateTime` object instead of `CURRENT_TIMESTAMP`)
- Fixed: Fix: Don't show notice about `mailoptions` when not logged on.
- Fixed: Alignment of #navpage-secondary menu item icons in FireFox. (See #4178)
- Fixed: Strip tags from `<title>` in editcontent. Fixes: #3590.
- Fixed: Fix secondary nav element's class not being output in certain cases.

Bolt 2.2.10
-----------

Released 2015-09-01. Notable changes:

- Updated: Updated Doctrine and it's components to the latest version. (version 2.5.1, see [here for details](http://www.doctrine-project.org/2015/08/31/doctrine_orm_2_5_1_and_2_4_8_released.html))

Bolt 2.2.9
----------

Released 2015-08-30. Notable changes:

- Added: Add a button for `<hr>` / horizontal ruler in CKeditor for (see #3539)
- Added: Show "profile" button on users page, if not allowed to edit other users than themselves. (See #4008)
- Fixed: Truly allow edit permission to be assigned to the owner role (Thanks @fabschurt, see #4019)
- Fixed: Fix record retrieval for ownership checking (Thanks @fabschurt, see #4024)
- Fixed: Don't allow extension tables that do not use the configured prefix (see #3968)
- Fixed: Don't attempt to log array elements that aren't set. (see #3969)
- Fixed: Changelog 'next' & 'previous' buttons didn't work as expected in Bolt 2.2.x (See #4009)
- Fixed: Move `initMailCheck()` call to a `before()` handler (See #3953)
- Fixed: Allow edit permission to be assigned to the owner role. Fixes "Unable to edit entry with owner permission". (See #3938)
- Fixed: Fix path to Nut for Composer installs (See #3959)
- Changed: Provide UI feedback on extension site timeouts. (see #3972)
- Changed: Move the Showcases template select to the Meta tab (See #4006)
- Changed: Don't `Content::preParse()` return an error, log it and return a generic message (See #3990)
- Changed: Lock Silex to version 1.2.* for PHP 5.3.3 support (See #4021)
- Updated: CKeditor updated to version 4.5.2
- Updated: Symfony updated to 2.6.11
- Updated: Silex updated to 1.2.5
- Updated: Font Awesome to 4.4
- Updated: Database integrity checker. Add foreign key checks to IntegrityChecker (See #3872)
- Tests: Allow `getStatementMock()` to be passed a desired return value (See #3957)

Bolt 2.2.8
----------

Released 2015-07-31. Notable changes:

- Fixed: Ensure grouped taxonomies aren't wiped from listing pages when toggling the publication status. (see #3910)
- Fixed: Timed entries will no longer switch to 'unpublished' after update to 2.2.7 (see #3899)
- Fixed: "Notice: Array to string conversion in /..../src/Storage.php on line 1071" (See #3893)
- Fixed: Avoid a missing array key from displaying a warning (Thanks Fabschurt)
- Updated: `squizlabs/php_codesniffer` requirement to `~2.0` due to upstream changes.
- Fixed: Send storage event in publishTimedRecords (see #3879)
- Fixed: Memory leak / loop in "new content" (see #3883)

Bolt 2.2.5
----------

Released 2015-07-24. Notable changes:

 - Performance: Don't request users if we don't have to, and streamline `isAllowed()` functionality. (#3847)
 - Fixed / security: If a user is not root, do not allow them to change the file extension on rename in UI. (Thanks to Tim Coen of Curesec GmbH for bringing this issue to our attention. See #3815)
 - Fixed: Layout issue in Chrome 44. Pretty sure it's a weird bug in Chrome. (#3856)
 - Changed: Update JS Markdown Options to match Parsedown for consistency. (#3820)
 - Added: A Nut command to rebuild the extension autoloaders. (#3786)
 - Changed: Send "New Bolt site" e-mail upon first user creation only. (Thanks Fabschurt, see #3792)
 - Fixed: Issue in Geolocation field, where it would 'forget' the retrieved address. (#3813)
 - Fixed / Added: Have the Async file/directory routes return useful JSON responses. Display an UI alert on file/directory request failures. (#3815)
 - Fixed: Trigger database update notifications for changed field names (#3816)
 - Fixed: The database platform's method `getCreateTableSQL` allows foreign keys to be added. (Thanks Ntomka, see #3745)
 - Added: Add caching for the translation provider (#3753)
 - Fixed: If vendor/autoload.php is missing, include `LowlevelException.php` manually.

Bolt 2.2.4
----------

Released 2015-06-25. Notable changes:

 - Fixed: Logic preventing building of local extension autoloader (Thanks timcooper, see #3699)
 - Fixed: Clipboard paste issue with fileuploader (Thanks timcooper, see #3702)
 - Added: Now possibile to use the search feature for specific contenttype(s) (Thanks sbani, see #3713)
 - Fixed: Wrong interpretation of max_upload_filesize / post_max_size (Thanks tvlooy, see #3732)
 - Fixed: Password reset "Error: Divide by zero" (see #3730)

Bolt 2.2.3
----------

Released 2015-06-15. Notable changes:

 - Fixed: Yaml config read and write fixed for other indentations than '2 spaces'. (See #3682)

Bolt 2.2.2
----------

Released 2015-06-12. Notable changes:

 - Added: Swedish translation. (Thanks SahAssar, see #3659)
 - Fixed: In menus: Don't assume root URL is '/'
 - Fixed: Generate search pager link
 - Fixed: Sorting in 'overviews':`content.TitleColumnName()` is an array now. (see #3635)
 - Fixed: Set link of item in Menu properly, and fixes bug in populateItemFromRecord. (See #3655)

Bolt 2.2.1
----------

Released 2015-06-05. Notable changes:

 - Update: Silex is now version 1.3.0
 - Added: Implement `title_format:`, to control the behaviour of what's seen as the 'title' in overviews and listings. See #3635
 - Changed: Create the extension's composer.json if only a local extension exists. See #3627
 - Fixed: Use the Silex HttpFragmentServiceProvider as TwigCoreExtension has been removed in Silex 1.3. See #3632
 - Fixed: Two more overrides in `composer.json` for symfony components that got bumped to v2.7.0. See #3634
 - Fixed: Extend SSL/TLS Handling. Fixes bug/warnings in Packagemanager. See #3633
 - Fixed: Generated `<meta>`-tags always stay in the `<head>` section, now. See #3637

Bolt 2.2.0
----------

Released 2015-06-04. Notable changes:

 - Added: Stop Finder from recursing common build folders and place a limit on the maximum depth it will recurse otherwise. (Thanks @Cooperaj, see #3069)
 - Fixed: Removing default taxonomylink route leads to exception (See #3070)
 - Fixed: Don't reset urls when adding base path. (See #3074)
 - Fixed: Whoops error when duplicating a record. (See #3064)
 - Fixed: Fixes broken extension installer (See #3086)
 - Added: Add composer branch alias. (see #3089)
 - Fixed: Redirect for backend trailing slash redirect (`/bolt` -> `/bolt/`) (See #3083)
 - Fixed: Regression that errored on PHP < 5.3.6: `Remove SplFileInfo::getExtension()`. (See #3095)
 - Added: Use the X-Forwarded for IP address when an appropriate one exists and the trustedProxies config contains a valid IP. (Thanks @Cooperaj, see #3031, #3093)
 - Fixed: Extension theme installer working properly (see #3108, thanks @nikgo)
 - Fixed: Replacing ` ` with single space, instead of nothing. (See #3111)
 - Added: Added an option to delete a record, when editing it. (See #3134)
 - Removed: removed "frontend permission checks". (See #3133)
 - Fixed: Prevent extra spaces in excerpts. (See #3130)
 - Fixed: Show notice on update of Bolt. (See #3129)
 - Fixed: Make dashboard activity log autoupdate again (See #3126)
 - Fixed: Upload UX Improvements (Thanks, @Pinpickle, see #3123)
 - Fixed: Warning for unsaved content comes up when nothing has been changed (see #3077)
 - Added: Make the sanitisation of markdown fields configurable. (see #2992 #3142)
 - Fixed: Fixed z-index of sidebar. (See #3100)
 - Fixed: Disable "revert" button on 'edit file' screen, when file is not wrtiable. (See #3009)
 - Added: Allow for multiple (fallback) locales in `config.yml`. (Thanks @sintemaa, see #3127)
 - Fixed: Be a little more strict in picking 'selected' options: Only use the fallback, if there's no valid id set.
 - Change: Lock composer.json to Symfony 2.6.4 as 2.6.5 fails PHPUnit
 - Added: Re-added standalone jQuery lib, as some extensions might need it.
 - Fixed: Create app/ subdirectories on Composer installs, and other `composer install` fixes.
 - Fixed: Workaround, so we don't break on installations with `"require": []` in `extensions/composer.json` (see #3171)
 - Never add extra jQueries on the backend. (See #3177)
 - JS bugfixes (save button + goto publishing status) (See #3160)
 - Flush the cache if the Bolt version has changed (See #3183)
 - Fixed: Allow `|||`-queries to be more complex (Thanks @Pinpickle, see #3189)
 - Fixed: Storage not using sort from contenttype (Thanks @CarsonF, see #3187)
 - Change: Only log content not found errors if slug isn't numeric, since `next` and `previous` check by `id` (see #3186)
 - Fixed: Make sure we use `ParsedownExtra`, instead of just `Parsedown. (Thanks, @cooperaj, see #3194)
 - Fixed: Changelog content uses correct tablenames. (See 3198)
 - Added: Markdown fields now have a nice new editor, with Preview and fill screen / split screen functionality. (ee #3225)
 - Fixed: Normalising taxonomy before comparison for deleting old ones.(Thanks @silentworks, see #3224)
 - Change: Improve `shyphenate()`: Only add breaks to long words, instead of everywhere. (see #3221)
 - Added: Upload UX improvements part 2 - Progress bars. (Thanks @pinpickle, see #3218)
 - Fixed: Fix 'current' in menu. (see #3209)
 - Change: Use 4 spaces in all `.yml` and base-2014 theme. (see #3205)
 - Fixed: Set the canonical correctly. (see #3214)
 - Fixed: Make `BaseExtension::initialize()` non-abstract again to deal with PHP < 5.3.10 (See #3257)
 - Fixed: `isallowed` checks for extensions to also check for `extensions:config` (Thanks @SahAssar, see #3249)
 - Fixed: Strange step behaviour when no `min` is set for integer fields (Thanks @Pinpickle, see #3284)
 - Fixed: Make sure we have the same amount of columns, always. (See #3228)
 - Added: Allow for filtering on 'taxonomies' on the overview pages. (See #3278)
 - Added: Support for methods in `routing.yml` (see #3292)
 - Fixed: Publishing for items with 'Timed Publish' is working again. (Fixes #3279)
 - Added: Frontend requests should not set cookies. Remove them, to allow Varnish to do a better job of caching the request. (see #3309)
 - Added: Add exif aspect ratio and exif orientation data to imageinfo() (Thanks @Intendit,see #3308)
 - Fixed: Fix rendering in sidebar on mobile. (see #3246)
 - Added: New feature: Retina support for thumnbails (see bolt/bolt-thumbs/#19)
 - Added: Allow filtering in 'record.related' on other fields too. (Thanks @miguelavaqrod, see #3303)
 - Fixed: Fix path for non-ajaxy file-upload. (see #3303)
 - Fixed: Added extra check for "view permission" for quicklinks (Thanks @StevendeVries, see #3299)
 - Fixed: Make geolocation gracefully fail if google is not loaded (See #3356)
 - Added: Small UX improvement: Show spinner while doing ajaxy save. (See #3355)
 - Added: Use `PHPExif\Exif` for getting EXIF data in `TwigExtensions::imageinfo()` (See #3354)
 - Change: `slug` and `geolocation` fields refactored. Refactored out 'GoMap' dependancy. (See #3344)
 - Change: Fixed Scrutinizer config (See #3343)
 - Change: Allow explicit setting of a Contenttype's table name suffix (See #3342)
 - Fixed: Only setting default timezone if config provides it (See #3334)
 - Fixed: Fix for "timed depublish". (See #3330)
 - Fixed: [Tests] Move PHPUnit resource creation into the listener (See #3326)
 - Change: Make backend submenu-items the top level item, if there's only one sub-item. (See #3323, thanks Intendit)
 - Fixed: Fix rendering in sidebar on mobile. Fixes (See #3321)
 - Added: Allow filtering in 'record.related' on other fields too. (See #3320)
 - Fixed: Slugs generation fixed (See #3310)
 - Change: Refactor out `load.php`. (see #3371)
 - Change: Move CodeSniffer to a composer package (see #3365)
 - Fixed: Fixing small inconsistency in `permissions.yml.dist': 'editors' can browse uploaded files from within CKeditor now. (See #3357)
 - Make the removal / stripping of ` ` characters in CKEditor fields optional. (see #3373)
 - Fixed to handle correctly file requests with built-in server (Thanks, @pedronofuentes, see #3383)
 - Fix to use title and alt text on image field (Thanks @Shyim, see #3387)
 - Fixed: Allow editing of empty files. (Thanks, @SahAssar, see #3391)
 - Added: Include plugins "Styles Combo" and "Stylesheet Parser" in CKEditor (See #3384)
 - Added: Always have a fallback for a timezone when it isn't set in either php.ini or config.yml (See #3397)
 - Added: Ability to set a Email Sender Mail in config.yml (Thanks @Shyim, see #3409)
 - [Tests] Properly tidy the Codeception template field test (see #3451)
 - Check if folder exists first, when using it for uploads (See #3450)
 - [Codeception] Use a conditional version so 5.3 Travis builds won't fail. (See #3448)
 - Enhancement to define templates for the template chooser in backend. (Thanks Shyim, see #3447)
 - Allow 'duplicate' and 'delete' from contextual menu, when a Record has relationships. Fixes #3431
 - Don't trigger DBCheck for changed indexes. Fixes #3426
 - Only show the "delete" button if the page has been saved already. Fixes #3444
 - Fixes #3435 by disabling browser XSS protection for file editing. (See #3439, thanks timcooper)
 - Secondary menu refactoring (JS) + fixes for #2329 and #2347 (see #3433
 - Added: optional filter to select field with contenttype values. (see #3432)
 - Added: support for YAML repeated nodes (see #3430)
 - Fixed: PGSQL encoding settings in post connect event until doctrine/2.5.2 is out (see #3429)
 - Fixed: Change slug label when contenttype is viewless (See #3428, thanks Pinpickle)
 - Make Application::unsetSessionCookie() optional and BC friendly (see #3427)
 - Added: Config file `web.config` for IIS servers. (See #3423, thanks hyperTwitch)
 - Change: PGSQL encoding settings in post connect event until doctrine/2.5.2 is out. (See #3429)
 - Fixed: Change slug label when contenttype is viewless. (See #3428)
 - Added: add optional filter to select field with contenttype values (See #3432)
 - Fixed: Secondary menu refactoring (JS) (Fixes #2329 and #2347)
 - Fixed: prevent error message in `_sub_menu.twig` if `strict_variables` is set. (See #3462)
 - Security: Make sure we set the status correctly for 'async' requests. (See #3463)
 - Fixed: Set status explicitly on ajaxy requests. (See #3466)
 - Fixed: Bunch of small HTML5 validation errors. (See #3485)
 - Fixed: `attrib` for images. (See #3487)
 - Fixed: Fix pagination for searching via `getContent()`` or `{% setcontent %}`. (See #3496)
 - Fixed: Handle empty composer config, e.g. themes (See #3509)
 - Fixed: Use correct service key (See #3507)
 - Return to previous page, with paging and filtering. See #3588
 - Add a try-exception when parsing `allowtwig` fields.
 - Call abort for simpleredirect on "Save and return to overview".
 - Tweaking the delay, making behaviour bit nicer for "fast clickers". Fixes #3513
 - Fixes server-side error when ajaxy-deleting records that were created programmatically.
 - Prevent composer from sneaking in any `v2.7.0` symfony components. Remove `symfony/locale`.
 - Return to previous page, with paging and filtering. See #3588
 - Add a try-exception when parsing `allowtwig` fields.
 - Call abort for simpleredirect on "Save and return to overview".
 - Tweaking the delay, making behaviour bit nicer for "fast clickers". Fixes #3513
 - Fixes server-side error when ajaxy-deleting records that were created programmatically.
 - Prevent composer from sneaking in any `v2.7.0` symfony components. Remove `symfony/locale`.
 - Local extension autoloader See #3607
 - Request cache fix. See #3561
 - To make content 'stick' after saving, use `contentkey` instead of `key`. #3527
 - Make sure `$unserdata` is an array, and not merely `false`. See #3526
 - Handle Flysystem exception correctly when a file is not found. See #3519

Bolt 2.1.9
----------

Released 2015-04-29. Notable changes:

 - Fixed: `attrib` for images. (See #3487)
 - Fixed: Fix pagination for searching via `getContent()`` or `{% setcontent %}`. (See #3496)
 - Fixed: Use 'alt' instead of 'title' in Image fieldtype's attributes. (See #3505)

Bolt 2.1.8
----------

Released 2015-04-29. Notable changes:

 - Fix: prevent error message in `_sub_menu.twig` if `strict_variables` is set. (See #3462)
 - Security: Make sure we set the status correctly for 'async' requests. (See #3463)
 - Fixed: Set status explicitly on ajaxy requests. Fixes #3466

Bolt 2.1.7
----------

Released 2015-04-29. Notable changes:

 - Check if folder exists first, when using it for uploads (See #3450)
 - Allow 'duplicate' and 'delete' from contextual menu, when a Record has relationships. Fixes #3431
 - Don't trigger DBCheck for changed indexes. Fixes #3426
 - Make Application::unsetSessionCookie() optional and BC friendly (see #3427)
 - Make the removal / stripping of ` ` characters in CKEditor fields optional. (see #3373)
 - Fixed: Allow editing of empty files. (Thanks, @SahAssar, see #3391)
 - Added: Always have a fallback for a timezone when it isn't set in either php.ini or config.yml (See #3394)
 - Only show the "delete" button if the page has been saved already. Fixes #3444

Bolt 2.1.6
----------

Released 2015-04-13. Notable changes:

 - Fixed: Slugs generation with `uses:` fixed (see #3310)
 - Added: Frontend requests should not set cookies. Remove them, to allow Varnish to do a better job of caching the request. (see #3309)
 - Added: Add exif aspect ratio and exif orientation data to imageinfo() (Thanks @Intendit,see #3308)
 - Fixed: Fix rendering in sidebar on mobile. (see #3246)
 - Added: New feature: Retina support for thumnbails (see bolt/bolt-thumbs/#19)
 - Added: Allow filtering in 'record.related' on other fields too. (Thanks @miguelavaqrod, see #3303)
 - Fixed: Fix path for non-ajaxy file-upload. (see #3303)
 - Fixed: Added extra check for "view permission" for quicklinks (Thanks @StevendeVries, see #3299)
 - Change: Frontend requests should not set cookies. Remove them, to allow Varnish to do a better job of caching the request. (See #3309)
 - Fixed: Fix rendering in sidebar on mobile. Fixes (See #3321)
 - Fixed: Fix for "timed depublish". (See #3330)
 - Fixed: Only setting default timezone if config provides it (See #3334)
 - Added: Small UX improvement: Show spinner while doing ajaxy save. (See #3355)
 - Fixed: Fixing small inconsistency in `permissions.yml.dist': 'editors' can browse uploaded files from within CKeditor now. (See #3357)
 - Fix: People who try installing Bolt on PHP 5.1 or 5.2 will now get a nice and friendly notice that Bolt won't work. (see #3371)

Bolt 2.1.5
----------

Released 2015-04-01. Notable changes:

 - Fixed: Strange step behaviour when no `min` is set for integer fields (Thanks @Pinpickle, see #3284)
 - Fixed: Make sure we have the same amount of columns, always. (See #3228)
 - Added: Allow for filtering on 'taxonomies' on the overview pages. (See #3278)
 - Added: Support for methods in `routing.yml` (see #3292)
 - Fixed: Publishing for items with 'Timed Publish' is working again. (Fixes #3279)

Bolt 2.1.4
----------

Released 2015-03-27. Notable changes:

 - Never add extra jQueries on the backend. (See #3177)
 - JS bugfixes (save button + goto publishing status) (See #3160)
 - Flush the cache if the Bolt version has changed (See #3183)
 - Fixed: Allow `|||`-queries to be more complex (Thanks @Pinpickle, see #3189)
 - Fixed: Storage not using sort from contenttype (Thanks @CarsonF, see #3187)
 - Change: Only log content not found errors if slug isn't numeric, since `next` and `previous` check by `id` (see #3186)
 - Fixed: Make sure we use `ParsedownExtra`, instead of just `Parsedown`. (Thanks, @cooperaj, see #3194)
 - Fixed: Changelog content uses correct tablenames. (See 3198)
 - Change: Improve `shyphenate()`: Only add breaks to long words, instead of everywhere. (see #3221)
 - Fixed: Fix 'current' in menu. (see #3209)
 - Fixed: `isallowed` checks for extensions to also check for `extensions:config` (Thanks @SahAssar, see #3249)
 - Fixed: Allow 'name' in contenttype to override translation, for 2.1.x (see #3259)
 - Fixed: Make `BaseExtension::initialize()` non-abstract again to deal with PHP < 5.3.10 (See #3257)

Bolt 2.1.3
----------

Released 2015-03-18. Notable changes:

 - Added: Added an option to delete a record, when editing it. (See #3134)
 - Removed: removed "frontend permission checks". (#see 3133)
 - Fixed: Prevent extra spaces in excerpts. (See #3130)
 - Fixed: Show notice on update of Bolt. (See #3129)
 - Fixed: Make dashboard activity log autoupdate again (see #3126)
 - Added: Make the sanitisation of markdown fields configurable. (see #2992 #3142)
 - Fixed: Fixed z-index of sidebar. (See #3100)
 - Fixed: Disable "revert" button on 'edit file' screen, when file is not wrtiable. (See #3009)
 - Added: Allow for multiple (fallback) locales in `config.yml`. (Thanks @sintemaa, see #3127)
 - Fixed: Warning for unsaved content comes up when nothing has been changed (see #3077)
 - Fixed: Be a little more strict in picking 'selected' options: Only use the fallback, if there's no valid id set.
 - Change: Lock composer.json to Symfony 2.6.4 as 2.6.5 fails PHPUnit
 - Added: Re-added standalone jQuery lib, as some extensions might need it.
 - Fixed: Workaround, so we don't break on installations with `"require": []` in `extensions/composer.json` (see #3171)

Bolt 2.1.1
----------

Released 2015-03-12. Notable changes:

 - Added: Stop Finder from recursing common build folders and place a limit on the maximum depth it will recurse otherwise. (Thanks @Cooperaj, see #3069)
 - Fixed: Removing default taxonomylink route leads to exception (See #3070)
 - Fixed: Don't reset urls when adding base path. (See #3074)
 - Fixed: Whoops error when duplicating a record. (See #3064)
 - Fixed: Fixes broken extension installer (See #3086)
 - Fixed: Redirect for backend trailing slash redirect (`/bolt` -> `/bolt/`) (See #3083)
 - Fixed: Regression that errored on PHP < 5.3.6: `Remove SplFileInfo::getExtension()`. (See #3095)
 - Fixed: Extension theme installer working properly (see #3108, thanks @nikgo)
 - Fixed: Replacing ` ` with single space, instead of nothing. (See #3111)

Bolt 2.1.0
----------

Released 2015-03-09. Notable changes:

- Added: Allow for `https://` protocol in `canonical` setting in config.yml. (see #3044)
- Added: Taiwanese (zh_TW) localisation. (#3022, thanks @Leon0824)
- Fixed: Update CKEditor field objects if they exist on AJAX content saves. (See #2998)
- Added: A logging record for extension update and uninstall (see #2993)
- Added: Client-side validation (first for floats only). (see #2997)
- Change: Float field now not html5 number field anymore, and both `,` and `.` are allowed as decimal seperator.
- Change: The distribution now includes `composer.json.dist` and  `composer.lock.dist` files, if you need them.
- Added: Allow extensions to be used as controllers (non static) (see #2971)
- Fixed: Long conttenttype names are truncated properly in the sidebar now. (See #2513)
- Fixed: Don't leak Database credentials on connection error during set up. (See #2538)
- Change: Remove unused jquery-catchpaste.
- Change: Many changes (for the better) to logging: Monolog, improved UI, separation of concerns.
- Refactor: Many changes and improvements to the Config object.
- Refactor: Major cleanup in Bolt\Storage, Bolt\Events\StorageEvents and Bolt\Content (#2664)
- **Updated: PHPUnit now covers complete code base** (#2542, thanks @rossriley)
- **Updated: Extensions interface had major overhaul and now uses the Composer API more extensively and provides better error handling for AJAX calls on the Extend page** (#2543 thanks @GawainLynch)
- **Update: Bolt's custom logging provider has been replaced with Monolog** (#2546, thanks @GawainLynch)
- Added: Extension repo as service: extracts the queries of the Extensions repo to a separate service provider.
 (#2550 thanks @rossriley)
- Added: BASH/ZSH command completion for Nut (see #2657)
- Updated: Magnific popup is now at 1.0.0. (#2560, thanks @cdowdy)
- Updated: FlySystem from version 0.5 to 1.1, with php5.3 patch. (#2587)
- Fixed: arrays in type:select fields. (#2609)
- Added: Allow for `keys: slug` in `type: select` fields, to customize the used field that's actually stored in the DB. (#2597)
- Fixed: Small logic fix for 'groupingSort'. (See #2520)
- Fixed: Have `Cache::clearCache()` use $app['resources']->getPath('root') for the 'thumbs' directory (See #2512)
- Fixed: Corner case bug in password reset (See #2616)
- Added: Editing content now shows recent changes that have been logged (if enabled) that link to the change comparison (See #2620)
- Fixed: Minor HTML fix and broken link in base-2015 theme (#2650, thanks @apatkinson)
- Fixed: Nest folders in cache 2 deep. (see #2644)
- Fixed: bug fixed in "Select in all items" in overview. (See #2669)
- Fixed: Fix filebrowser route binding name to be 'filebrowser' (See #2680)
- Fixed: Allow setting of regex pattern, replacement and case of uploaded file names (See #2691)
- Fixed: Regression that would break the ability to set global Twig variables in an extension (See #2717)
- Changed: Enforce SSL Config Change. Now we use only `enforce_ssl`, `cookies_https_only` is deprecated. (See #2726, thanks @dwolf555)
- Fixed: Flipped array replace arguments in `parseFieldsAndGroups()`. (See #2738)
- **Fixed: No more unwanted ` `'s in CKeditor.** Fixes #2660
- Fixed: Logged in user can no longer disable themselves
- Fixed: Disabling a logged in user with force a logout
- Fixed: Fixed a bug with some utf8 characters becoming question marks after saving to database. (Thanks @dwr, See #2804)
- Fixed: Fix #2424 and other tab group improvements #2801 (TODO: Specify!)
- Added: Installed extensions now defaults to adding version constraints to allow for easier updating
- Change: The `X-Frame-Options`-header is now only sent for backend pages, and can be disabled in `config.yml` (See #2825)
- Change: Bolt now distinguishes between 'regular news' and 'alerts' on the Dashboard screen. This way, we can better notify people in case of an urgent security issue. (See #2830)
- Fixed: The built-in anti-CSRF token was renamed to `bolt_csrf_token` to prevent clashes when a user has a field named `token`. (See #2831)
- Change: You can now use `{id}` in routes for records instead of `{slug}`, if you wish to have links to records using the id. (See #2832)

Bolt 2.0.5
----------

Released 2015-01-21. Notable changes:

- Fixed: appending `order=...` to arbitrary Bolt URLs will no longer silently try to apply sorting to getContent.
- Fixed: For extensions adding Twig functions in content: `isSafe()` works correctly now (#2492, thanks @jmschelcher)
- Change: Use Twig's `resolveTemplate` instead of `file_exists` in Frontend Controller. (#2494, thanks @lavoiesl)
- Fixed: Remove horizontal scroll on login screen. (#2495, thanks @cdowdy)
- Fixed: Ongoing cleanup of translation labels. (thanks @Chilion)
- Fixed: "Clear Cache" now also clears all generated thumbs from `thumbs/`
- Fixed: Nav links in admin dashboard, when accessed over HTTPS (#2499, thanks @glasspelican)
- Fixed: Much better code-formatting in CKEditor (#2841, thanks @Pinpickle)
- Added: You can now use multiple slugs in a single contenttype, should you want to. (#2490)
- Fixed: EXIF orientation and general breakage of thumbnails on older versions of GD has been fixed.
- Updated: Several used components were updated: Symfony components to 2.6.5, Silex to 1.2.3, Twig to 1.17, Parsedown to 1.5.0, Doctrine DBAL to 2.5.1

Note: due to a quick fix, right after 2.0.4 was tagged, that version was skipped as a separate release.

Bolt 2.0.3
----------

Released 2015-01-16. Notable changes:

- Added: **integration of Symfony's VarDumper component**. The old 'Dumper::dump' is still
  present, for backwards compatibility
- Added: Option to disable dashboard news
- Added: Browser caching and EXIF orientation support for thumbnails
- Added: Improvements to Imagelist and Filelist fields: Better selection and re-ordering,
  delete multiple items, and view full-size images. (Thanks @Pinpickle, See #2360)
- Added: proportional autoscaling option to showImage() using '0' values
- Added: Use jshint in grunt workflow
- Added: Whoops now sends errors to AJAX callers in JSON format (#2433)
- Fixed: Bug where contenttype name in menu isn't translated
- Fixed: **No CSS / static files shown** when using PHP's built-in server via ./serve (#2381)
- Fixed: Reference of IntlDateFormatter stub functions (#2415)
- Fixed: Magnific popup image preview on image lists (#2443)
- Fixed: Added 'pasteZone: null', which prevents triggering an upload when pasting from Word in Chrome. (#2427)
- Fixed: Pager works correctly for paging categories and other taxonomies (#2468)
- Fixed: Only apply pagination to `setcontent`, when 'paging' is required / requested (#2417)
- Fixed: Select field type, with values from another content type now always uses the 'id' as the value in the DB. (#2465)
- Fixed: When session is invalidated due to changing your own username, redirect to login screen. (#2457)
- Updated: CKeditor to 4.4.6, and all used plugins to the latest versions
- Updated: jQuery to version 1.11.2
- Updated: jQuery goMap to 1.3.3  (#2377)
- Updated: Unify image- and filelists
- Updated: Make image- and filelists looking more flat
- Change: Set default width/height of showImage() to '0'
- Change: Fields that previously used 0000-00-00 and 1900-01-01 now default to using NULL instead (#2396)
- Change: Uglify bolts js files to bolt.min.js (#2398)
- Change: Priorities of Taxonomy listing template selection (#2420)
- Change: Separate magnific-popup between app and theme (#2429)
- Change: Also use XMLHttpRequest to detect AJAX requests in `getWhichEnd()` (#2423)
- Change: Refactor Twig setup (Thanks @CarsonF, see #2430)
- Change: Url matcher updates (Thanks @CarsonF, see #2431)
- Change: Add a data() Twig function to allow storing of data to be passed en masse to JavaScript (#2458)
- Removed: Removed the `base-2013` theme
- Removed: Ancient browser-specific tags
- Change: System activity and change log permissions have changed and users now require systemlog and/or changelog permissions in permissions.yml (See #2805)

Bolt 2.0.2
----------

Released 2014-12-21. Notable changes:

- Update Storage to insert instead of update when content doesn't exist
- If we fall back from UPDATE to INSERT, we should also log it as such
- Added an option to disable stack functionality
- Tweaking protocol detection for HTTPS

Bolt 2.0.0
----------

Released 2014-12-18. Notable changes:

- Fix the pager for taxonomy-listings
- Implemented "viewless" property for contenttypes. Fixes #2149
- IE9: Javascript Dropdowns #2195
- Set twig globals on 404 pages. Fixes #2198
- Show Stack on "Browse Server" for images. Fixes #2235
- Added "Copy to themes" button in Extend
- Force json response to send text/plain header. Fixes uploading images in IE9.
- Transparent button on "focus". Tabbing is visible again, helps with accessibility
- Add "roles" button to users screen
- Allowing the extensions site to bet set in config.yml
- confirm extension delete/removal/uninstall
- Refuse to display Bolt in an iframe, to prevent possible clickjacking. See #2197. Thanks, @narendrabhati
- Editcontent dates are now stored as entered, set the timezone in config.yml
- Paging now works correctly for taxonomy-listings
- Make ckeditor use new global locale setting #2087
- Contenttype submenu labels are now translated
- Store Geolocation fields, if only the coordinates are set. Make sure the view initialises, if on a second tab. Fixes #2172
- Set moments locale before initialise
- proxy twig functions to separate twig extension object
- Disallow snippets on extend sub-requests
- Fix moments and remove it from global space
- Fix notices when translation files are not found
- Follow symlinks when loading local extensions
- Responsive video. Fixes #1916
- Set the correct mime type for woff2 font type
- Tweaking the fonts, goes with #2099
- Fix #2085 allow editing of broken Yaml file
- Actually load the _local file for extensions
- Add register_shutdown_function() to bootstrap for earliest init we can get
- Cleanups in composer.json. Almost got rid of all "dev-master" and "@dev"
- Add an "ungrouped" tab, for when some fields are defined without a group. Fixes #2080
- When sorting with "behaves_like: grouping", order '0' was ignored. Fixes #2112
- Making the form validation notices a bit more in line with our other notices
- Finally workaround the cron interval column removal
- Disable buttons and install section if offline
- Have Extend cope with offline network connections
- Show other files than images in "async browse". Fixes #2136
- Check dates in fromPost instead of in setValues
- Add backend FlashBag messages on various extension loading failures
- Don't reset depublish column when depublishing
- Don't autoDepublish again for later edits
- If you sort by a column, it will also sort the "recent" menu items using the same sort
- Fix time input being displayed for date only fields
- Add "config": {"discard-changes": true} to extensions/composer.json so that changed files will get overridden/overwriten on extension package update instead of silently failing
- Fix "Only variables should be passed by reference"-notice. Fixes #2209
- Parse markdown fields for excerpts. Fixes #2246
- Sigh … If we have more relations, make sure we keep them all. See #2255
- When looking for Twig template file names, also include any character that is not a vertical whitespace character
- image and showimage wrong index #2275
- Logic fix in timestamp for theme/config.yml check

Bolt 2.0 "Beta 3"
-----------------

Released 2014-11-04. Notable changes:

- Updated Moments.js to 2.8.3. Use moment.locale() instead of deprecated moment.lang() #2088
- Fixed: Simplified Html::trimText(), "excerpt" now works better on non-western-european strings
- Fixed: Breadcrumbs in "edit file" screens work correctly now. #2077
- Fixed: Proper sorting in Backend overview. Fixes #2036
- Fixed: "open_basedir restriction in effect" error related to Composer
- Fixed: "File(`/dev/urandom`) is not within the allowed path(s)" error
- Added: min/max/step options for float and integer fieldtypes
- Switching from Googlefonts to our local version of Source Sans Pro. Fixes #2038
- Ongoing fixes and changes to the translation files. (and added Chinese)
- A bunch of fixes to the automatic acceptance tests
- Fixed: Editable record list calls wrong listing template (for related content) #2028
- Added: Javascript form validation #2019
- Added: custom `error: "message"` for use with javascript form validation
- Fixed: Fix notice in `SearchPlugin::handle()` #2025
- Added: Added hints generation for removed columns in dbcheck
- Fixed: Exception when viewing related items #2026
- Uploads from the "files" screens upload to the correct folder, instead of always to `files/`
- Updated HTML/CSS for the "Changelog" screen
- Added Pathogen, in order to handle paths on Windows systems better …
- … and immediately factored out [Isolator](https://github.com/IcecaveStudios/isolator), because that shit's just wrong, man

Known issues:

- If you have PHP 5.3 or PHP 5.4 with APC enabled, the installation of extensions might not work. PHP 5.3 and PHP 5.4 _will_ work with APC disabled. PHP 5.5 works as expected, regardless of whether APC is enabled

Bolt 2.0 "Beta 2"
-----------------

Released 2014-11-29

- Ongoing fixes to the "Translation" module (for the backend): extra labels, updated translations, code cleanup
- Ongoing fixes to the "Paths" module (for the backend): Fixed some missing paths and edge-cases
- Installing "Extensions" works much better on Windows servers now
- Refactor: Translating using `__( )` has been moved to it's own class
- Refactor: Refactored `lib.php` into a proper class
- Usage of "icons" in various `.yml` files has been tweaked to make them futureproof
- Installing a theme copies `config.yml.dist` to `config.yml` in the new folder now
- Stack upload button does not work  Blocking release bug
- Error in "date" and "datetime" fields fixed. Datepicker works correctly for a wider range of languages now
- The "templateselect" field in records now does actually select that template to render the pages
- Cleanup a lot of issues in the code, as reported by [Sensiolabs Insight](https://insight.sensiolabs.com/projects/4d1713e3-be44-4c2e-ad92-35f65eee6bd5)
- CSS / HTML fixes in "users" and "edit file" screens
- Fix to filesystem locations for asset installer
- Jumping to "current status" from Edit Record screen works correctly now

Bolt 2.0 "Beta Boltcamp"
------------------------

Released 2014-10-19. Notable changes:

- Everything[.](http://sandvoxxcheap.com/wp-content/uploads/2014/07/ZPWb7iM.gif)


text:
// ///////////////////////////////////////////////////////////////////////////////////////////
//  Description:     IEntitySet interface.
//  Author:          Ben Moore
//  Created date:    29/04/2015
//  Copyright:       Donky Networks Ltd 2015
// ///////////////////////////////////////////////////////////////////////////////////////////

using System;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace Donky.Core.Framework.Data
{
	/// <summary>
	/// Defines operations for a set of entities.
	/// </summary>
	/// <typeparam name="TEntity">The type of the entity.</typeparam>
	/// <typeparam name="TId">The type of the identifier.</typeparam>
	public interface IEntitySet<TEntity, TId> where TEntity : IEntity<TId>
	{
		/// <summary>
		/// Gets the entity with the specified id.
		/// </summary>
		/// <param name="id">The identifier.</param>
		/// <returns></returns>
		Task<TEntity> GetAsync(TId id);

		/// <summary>
		/// Gets all entities.
		/// </summary>
		/// <param name="predicate">The predicate.</param>
		/// <returns></returns>
		Task<List<TEntity>> GetAllAsync(Func<TEntity, bool> predicate = null);

		/// <summary>
		/// Adds or updates the specified entities.
		/// </summary>
		/// <param name="entity">The entity.</param>
		/// <returns></returns>
		Task AddOrUpdateAsync(TEntity entity);

		/// <summary>
		/// Deletes the entity with the specified id.
		/// </summary>
		/// <param name="id">The identifier.</param>
		/// <returns></returns>
		Task DeleteAsync(TId id);

		/// <summary>
		/// Returns the number of entities in the set.
		/// </summary>
		/// <returns></returns>
		Task<int> CountAsync();
	}
}

redpajama_set_name: RedPajamaGithub


text:
from battlenet.community import Community

class BattlePets(Community):

    ENDPOINT = '/wow/battlePet/%s/%s'
    AVAILABLE_DATASETS = [
        'ability',
        'species',
        'stats'
    ]
    optional_params = {
        'quality_id': None,
        'breed_id': None,
        'level': None
    }

    def __init__(self, *args, **kwargs):
        super(BattlePets, self).__init__(*args, **kwargs)
        if kwargs.get('dataset'):
            if kwargs['dataset'] not in self.AVAILABLE_DATASETS:
                raise ValueError('Invalid dataset provided. Options are "abilities", "species" or "stats".')
            self.dataset = kwargs['dataset']

        self.id = kwargs.get('id', None)

        if self.dataset is 'stats':
            if kwargs.get('level'):
                self.optional_params['level'] = kwargs['level']
            if kwargs.get('quality_id'):
                self.optional_params['quality_id'] = kwargs['quality_id']
            if kwargs.get('breed_id'):
                self.optional_params['breed_id'] = kwargs['breed_id']

    def get(self, dataset=None, id=None, level=None, breed_id=None, quality_id=None):
        if dataset:
            if dataset not in self.AVAILABLE_DATASETS:
                raise ValueError('Invalid dataset provided. Options are "abilities", "species" or "stats".')
            self.dataset = dataset
        else:
            if not self.dataset:
                raise ValueError('Data set required. Options are "abilities", "species" or "stats".')

        if id:
            self.id = id
        else:
            if not self.id:
                raise ValueError('Ability/Species ID required.')

        if self.dataset is 'stats':
            if level:
                self.optional_params['level'] = level
            if  quality_id:
                self.optional_params['qualityId'] = quality_id
            if breed_id:
                self.optional_params['breedId'] = breed_id

        final_params = {}
        for key, value in self.optional_params.iteritems():
            if value:
                final_params[key] = value

        if len(final_params) > 0:
            self.add_params(final_params)

        return self.make_request(self.ENDPOINT % (self.dataset, self.id))


text:
import igraph

import numpy as np
import matplotlib.pyplot as plt

from GraphMovie import GraphMovie

n = {'nodes':50,'edges':3}

min_sigmoid = 0.5
max_sigmoid = np.exp(1)/(1.+np.exp(1))
sigmoid = lambda value: (1./(1+np.exp(-value))-min_sigmoid)/(max_sigmoid-min_sigmoid)
colorify = lambda color: (255*color,0,0)

'''
Create the GraphMovie object.
'''

m = GraphMovie()

g = igraph.Graph.Barabasi(n['nodes'],n['edges'])
m.addGraph(g)

degrees = np.array(g.degree()).astype(float)
degrees /= degrees.max()
map(sigmoid,degrees)

for id,node in enumerate(g.vs):
     g.vs[id]['color'] = tuple([degrees[id]]*3)
     g.vs[id]['label'] = str(id)

m.addGraph(g)

alpha = degrees

timesteps = 10
#--initial conditions
INITIAL = 0
attitudes = np.zeros((n['nodes'],2*timesteps))
attitudes[:,INITIAL] = np.random.random_sample(size=(n['nodes'],))

for t in xrange(1,timesteps):
    for agent,info in enumerate(g.vs):
        attitudes[agent,t] = (1-alpha[agent])*attitudes[agent,t-1] + alpha[agent]*attitudes[g.neighbors(agent),t-1].mean()
        g.vs[agent]['color'] = colorify(attitudes[agent,t].tolist())
    m.addGraph(g)

#change the susceptibility of the most tolerant agent
most_tolerant_agent = np.argmax(attitudes[:,-1])
alpha[most_tolerant_agent] = 0
attitudes[most_tolerant_agent,-1] = 1

for t in xrange(timesteps,2*timesteps):
    for agent,info in enumerate(g.vs):
        attitudes[agent,t] = (1-alpha[agent])*attitudes[agent,t-1] + alpha[agent]*attitudes[g.neighbors(agent),t-1].mean()
        g.vs[agent]['color'] = colorify(attitudes[agent,t].tolist())
    m.addGraph(g)

'''
Now process the layouts, render the frames, and generate the movie.
'''
m.doMovieLayout()
m.renderMovie()

fig = plt.figure()
ax = fig.add_subplot(111)
ax.hist(attitudes[:,INITIAL],color='r',alpha=0.5,range=(0,1),bins=20,label='Initial')
plt.hold(True)
ax.hist(attitudes[:,timesteps],color='b',alpha=0.5,range=(0,1),bins=20,label='Before polarizer')
ax.hist(attitudes[:,-1],color='k',alpha=0.5,range=(0,1),bins=20,label='After polarizer')
ax.set_ylabel('Frequency')
ax.set_xlabel('Attitude')
plt.legend(frameon=False)
plt.show()


text:
describe('ui tests', function() {

    before(function(done) {
        browser.init().url(baseUrl).call(done);
    });

    it('should be no UI regression on the startpage', function(done) {
        browser
            .webdrivercss('startpage', [{
                name: 'teamsection',
                elem: '#section-about'
            }, {
                name: 'contactForm',
                elem: '#section-contact .container'
            }], function(err, res) {

                console.log('Testresult for startpage\n', res);
                res.teamsection[0].isWithinMisMatchTolerance.should.be.true;
                res.contactForm[0].isWithinMisMatchTolerance.should.be.true;

            })
            .call(done);
    });

    after(function(done) {
        browser.end(done);
    });

});


text:
<?php

namespace backend\models;

/**
 * This is the ActiveQuery class for [[News]].
 *
 * @see News
 */
class NewsQuery extends \yii\db\ActiveQuery
{
    /*public function active()
    {
        $this->andWhere('[[status]]=1');
        return $this;
    }*/

    /**
     * @inheritdoc
     * @return News[]|array
     */
    public function all($db = null)
    {
        return parent::all($db);
    }

    /**
     * @inheritdoc
     * @return News|array|null
     */
    public function one($db = null)
    {
        return parent::one($db);
    }
}


text:
export { Animation } from './Animation';
export {
  AnimationBlock,
  PathAnimationBlock,
  ColorAnimationBlock,
  NumberAnimationBlock,
} from './AnimationBlock';


text:
ansible-playbook-auth-windows
=============================

Ansible playbook to deploy/manage windows auth


text:
from __future__ import print_function
import os
import request_to_yaml

filelist = []
for root, dirs, files in os.walk("waf-research", topdown=False):
    for name in files:
        extension = name[-5:]
        if extension == ".test":
            filelist.append(os.path.join(root, name))

for fname in filelist:
    f = open(fname, 'r')
    request = ""
    for line in f.readlines():
        if line[0] != '#':
            request += line
    req = request_to_yaml.Request()
    request = request.replace('\n', '\r\n')
    req.get_request_line(request)
    req.get_headers(request)
    req.get_data(request)
    yaml_out = req.generate_yaml()
    newfname = (fname.split('/')[-1]).split('.')[0]
    print(newfname)
    req.write_yaml('output/' + newfname + '.yaml', yaml_out)
    # print yaml_out


text:
> Progressive web app for luncha.co

## Technologies

Built with React, MobX, Styled components and service workers

## Author

[Alexander Nanberg](https://alexandernanberg.com)

## License

[MIT](license)


text:
var assign = require('object-assign');
var FieldType = require('../Type');
var TextType = require('../text/TextType');
var util = require('util');

/**
 * HTML FieldType Constructor
 * @extends Field
 * @api public
 */
function code (list, path, options) {
	this._nativeType = String;
	this._defaultSize = 'full';
	this.height = options.height || 180;
	this.lang = options.lang || options.language;
	this._properties = ['editor', 'height', 'lang'];
	this.codemirror = options.codemirror || {};
	this.editor = assign({ mode: this.lang }, this.codemirror);
	code.super_.call(this, list, path, options);
}
util.inherits(code, FieldType);

code.prototype.validateInput = TextType.prototype.validateInput;
code.prototype.validateRequiredInput = TextType.prototype.validateRequiredInput;

/* Inherit from TextType prototype */
code.prototype.addFilterToQuery = TextType.prototype.addFilterToQuery;

/* Export Field Type */
module.exports = code;


text:
/*
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.facebook.presto.example;

import com.facebook.presto.spi.ConnectorSplitManager;
import com.facebook.presto.spi.Partition;
import com.facebook.presto.spi.PartitionResult;
import com.facebook.presto.spi.Split;
import com.facebook.presto.spi.TableHandle;
import com.facebook.presto.spi.TupleDomain;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;

import javax.inject.Inject;

import java.net.URI;
import java.util.Collections;
import java.util.List;

import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.base.Preconditions.checkState;

public class ExampleSplitManager
        implements ConnectorSplitManager
{
    private final String connectorId;
    private final ExampleClient exampleClient;

    @Inject
    public ExampleSplitManager(ExampleConnectorId connectorId, ExampleClient exampleClient)
    {
        this.connectorId = checkNotNull(connectorId, "connectorId is null").toString();
        this.exampleClient = checkNotNull(exampleClient, "client is null");
    }

    @Override
    public String getConnectorId()
    {
        return connectorId;
    }

    @Override
    public boolean canHandle(TableHandle tableHandle)
    {
        return tableHandle instanceof ExampleTableHandle && ((ExampleTableHandle) tableHandle).getConnectorId().equals(connectorId);
    }

    @Override
    public PartitionResult getPartitions(TableHandle tableHandle, TupleDomain tupleDomain)
    {
        checkArgument(tableHandle instanceof ExampleTableHandle, "tableHandle is not an instance of ExampleTableHandle");
        ExampleTableHandle exampleTableHandle = (ExampleTableHandle) tableHandle;

        // example connector has only one partition
        List<Partition> partitions = ImmutableList.<Partition>of(new ExamplePartition(exampleTableHandle.getSchemaName(), exampleTableHandle.getTableName()));
        // example connector does not do any additional processing/filtering with the TupleDomain, so just return the whole TupleDomain
        return new PartitionResult(partitions, tupleDomain);
    }

    @Override
    public Iterable<Split> getPartitionSplits(TableHandle tableHandle, List<Partition> partitions)
    {
        checkNotNull(partitions, "partitions is null");
        checkArgument(partitions.size() == 1, "Expected one partition but got %s", partitions.size());
        Partition partition = partitions.get(0);

        checkArgument(partition instanceof ExamplePartition, "partition is not an instance of ExamplePartition");
        ExamplePartition examplePartition = (ExamplePartition) partition;

        ExampleTableHandle exampleTableHandle = (ExampleTableHandle) tableHandle;
        ExampleTable table = exampleClient.getTable(exampleTableHandle.getSchemaName(), exampleTableHandle.getTableName());
        // this can happen if table is removed during a query
        checkState(table != null, "Table %s.%s no longer exists", exampleTableHandle.getSchemaName(), exampleTableHandle.getTableName());

        List<Split> splits = Lists.newArrayList();
        for (URI uri : table.getSources()) {
            splits.add(new ExampleSplit(connectorId, examplePartition.getSchemaName(), examplePartition.getTableName(), uri));
        }
        Collections.shuffle(splits);

        return splits;
    }
}


text:
import sys
sys.path.append("../../common")
import nacl_util

NEXE = "tone.nexe"
DEFAULT_ARGS = None

if __name__ == '__main__':
  nacl_util.LaunchSelLdr(nacl_util.GetExe(NEXE),
                         nacl_util.GetArgs(DEFAULT_ARGS))


text:
<?php

class CustomersAPIController extends BaseController {

	/**
	 * Returns all rows.
	 * method: GET /
	 *
	 */
	public function index()
	{
		return Customer::all();
	}

	/**
	 * Method Not Supported
	 *
	 * @return 500
	 */
	public function create()
	{
        return Response::make(null, 500);
	}

	/**
	 * Creates new resource
	 * method: POST / data
	 *
	 * @return 500 on error, new resource on success
	 */
	public function store()
	{
		$customer = new Customer(Input::get());
		if(!$customer->save()) {
			Response::make(500,'Customer was not saved');
		}
		return $customer;
	}

	/**
	 * Returns resource for given index
	 * method: GET/:id
	 *
	 * @param  int  $id
	 * @returns 404 if not found, returns resource on success
	 */
	public function show($id)
	{
		$customer = Customer::find($id);
		if(!$customer) {
			App::abort(404,'Customer Record Not Found');
		}
        return Customer::find($id);
	}

	/**
	 * Returns resource for given index (same as as normal GET)
	 * method: GET/:id
	 *
	 * @param  int  $id
	 * @returns 404 if not found, returns resource on success
	 */
	public function edit($id)
	{
		$customer = Customer::find($id);
		if(!$customer) {
			App::abort(404,'Customer Record Not Found');
        }
        return Customer::find($id);
	}

	/**
	 * Update the specified resource in storage.
	 * method: PUT/:id / data
	 *
	 * @param  int  $id
	 * @return 404 if not found, returns updated resource on success, returns 500 on error
	 */
	public function update($id)
	{
		$customer = Customer::find($id);
		if(!$customer) {
			return Response::make(null, 404);
		} else {
			$affectedRows = Customer::where('id', $id)->update(Input::get());
			if($affectedRows) {
				return Customer::find($id);
			} else
				Response::make(500,'An error occured saving customer');
		}

	}

	/**
	 * Remove the specified resource from storage.
	 * method: DELETE/:id
	 *
	 * @param  int  $id
	 * @return 200 on success, 404 if not found, 500 on error
	 */
	public function destroy($id)
	{
		$customer = Customer::find($id);
		if(!$customer) {
			App::abort(404,'Customer Record Not Found');
		} else {
			$customer->delete();
			return Response::make(null, 200);
		}
	}

}


text:
module Guard
  module Notifier

    # Changes the color of the Tmux status bar and optionally
    # shows messages in the status bar.
    #
    # @example Add the `:tmux` notifier to your `Guardfile`
    #   notification :tmux
    #
    # @example Enable text messages
    #   notification :tmux, :display_message => true
    #
    # @example Customize the tmux status colored for notifications
    #   notification :tmux, :color_location => 'status-right-bg'
    #
    module Tmux
      extend self

      # Default options for Tmux
      DEFAULTS = {
        :client                 => 'tmux',
        :tmux_environment       => 'TMUX',
        :success                => 'green',
        :failed                 => 'red',
        :pending                => 'yellow',
        :default                => 'green',
        :timeout                => 5,
        :display_message        => false,
        :default_message_format => '%s - %s',
        :default_message_color  => 'white',
        :line_separator         => ' - ',
        :color_location         => 'status-left-bg'
      }

      # Test if currently running in a Tmux session
      #
      # @param [Boolean] silent true if no error messages should be shown
      # @param [Hash] options notifier options
      # @return [Boolean] the availability status
      #
      def available?(silent = false, options = {})
        if ENV[options.fetch(:tmux_environment, DEFAULTS[:tmux_environment])].nil?
          ::Guard::UI.error 'The :tmux notifier runs only on when Guard is executed inside of a tmux session.' unless silent
          false
        else
          true
        end
      end

      # Show a system notification. By default, the Tmux notifier only makes use of a color based
      # notification, changing the background color of the `color_location` to the color defined
      # in either the `success`, `failed`, `pending` or `default`, depending on the notification type.
      # If you also want display a text message, you have to enable it explicit by setting `display_message`
      # to `true`.
      #
      # @param [String] type the notification type. Either 'success', 'pending', 'failed' or 'notify'
      # @param [String] title the notification title
      # @param [String] message the notification message body
      # @param [String] image the path to the notification image
      # @param [Hash] options additional notification library options
      # @option options [String] color_location the location where to draw the color notification
      # @option options [Boolean] display_message whether to display a message or not
      #
      def notify(type, title, message, image, options = { })
        color = tmux_color(type, options)
        color_location = options[:color_location] || DEFAULTS[:color_location]

        run_client "set #{ color_location } #{ color }"

        show_message = options[:display_message] || DEFAULTS[:display_message]
        display_message(type, title, message, options) if show_message
      end

      # Display a message in the status bar of tmux.
      #
      # @param [String] type the notification type. Either 'success', 'pending', 'failed' or 'notify'
      # @param [String] title the notification title
      # @param [String] message the notification message body
      # @param [Hash] options additional notification library options
      # @option options [Integer] timeout the amount of seconds to show the message in the status bar
      # @option options [String] success_message_format a string to use as formatter for the success message.
      # @option options [String] failed_message_format a string to use as formatter for the failed message.
      # @option options [String] pending_message_format a string to use as formatter for the pending message.
      # @option options [String] default_message_format a string to use as formatter when no format per type is defined.
      # @option options [String] success_message_color the success notification foreground color name.
      # @option options [String] failed_message_color the failed notification foreground color name.
      # @option options [String] pending_message_color the pending notification foreground color name.
      # @option options [String] default_message_color a notification foreground color to use when no color per type is defined.
      # @option options [String] line_separator a string to use instead of a line-break.
      #
      def display_message(type, title, message, options = { })
          message_format = options["#{ type }_message_format".to_sym] || options[:default_message_format] || DEFAULTS[:default_message_format]
          message_color = options["#{ type }_message_color".to_sym] || options[:default_message_color] || DEFAULTS[:default_message_color]
          display_time = options[:timeout] || DEFAULTS[:timeout]
          separator = options[:line_separator] || DEFAULTS[:line_separator]

          color = tmux_color type, options
          formatted_message = message.split("\n").join(separator)
          display_message = message_format % [title, formatted_message]

          run_client "set display-time #{ display_time * 1000 }"
          run_client "set message-fg #{ message_color }"
          run_client "set message-bg #{ color }"
          run_client "display-message '#{ display_message }'"
      end

      # Get the Tmux color for the notification type.
      # You can configure your own color by overwriting the defaults.
      #
      # @param [String] type the notification type
      # @return [String] the name of the emacs color
      #
      def tmux_color(type, options = { })
        case type
        when 'success'
          options[:success] || DEFAULTS[:success]
        when 'failed'
          options[:failed]  || DEFAULTS[:failed]
        when 'pending'
          options[:pending] || DEFAULTS[:pending]
        else
          options[:default] || DEFAULTS[:default]
        end
      end

      # Notification starting, save the current Tmux settings
      # and quiet the Tmux output.
      #
      def turn_on(options = { })
        unless @options_stored
          reset_options_store

          `#{ DEFAULTS[:client] } show`.each_line do |line|
            option, _, setting = line.chomp.partition(' ')
            @options_store[option] = setting
          end

          @options_stored = true
        end

        run_client "set quiet on"
      end

      # Notification stopping. Restore the previous Tmux state
      # if available (existing options are restored, new options
      # are unset) and unquiet the Tmux output.
      #
      def turn_off(options = { })
        if @options_stored
          @options_store.each do |key, value|
            if value
              run_client "set #{ key } #{ value }"
            else
              run_client "set -u #{ key }"
            end
          end

          reset_options_store
        end

        run_client 'set quiet off'
      end

      private

      def system(args)
        args += " >/dev/null 2>&1" if ENV['GUARD_ENV'] == 'test'
        super
      end

      def run_client(args)
        system("#{ DEFAULTS[:client] } #{args}")
      end

      # Reset the internal Tmux options store defaults.
      #
      def reset_options_store
        @options_stored = false
        @options_store = {
          'status-left-bg'  => nil,
          'status-right-bg' => nil,
          'status-left-fg'  => nil,
          'status-right-fg' => nil,
          'message-bg'      => nil,
          'message-fg'      => nil,
          'display-time'    => nil
        }
      end

    end
  end
end


text:
var jade = require('./');
var resolvedJade = require.resolve('./');

function compileTemplate(module, filename) {
  var template = jade.compileFileClient(filename, {externalRuntime: true});
  var body = "var jade = require('" + resolvedJade + "').runtime;\n\n" +
             "module.exports = " + template + ";";
  module._compile(body, filename);
}

if (require.extensions) {
  require.extensions['.jade'] = compileTemplate
};


text:
These are extension methods for working with `Nullable<T>` in a reflection context.

## Is it nullable?

```csharp
using RapidCore.Reflection;

typeof(int).IsNullable(); // => false
typeof(int?).IsNullable(); // => true
typeof(string).IsNullable(); // => false .. a string can be null, but is not a Nullable<T>
```

## Getting the underlying type

What is the `T` in `Nullable<T>`?

```csharp
using RapidCore.Reflection;

typeof(int?).GetUnderlyingNullableType(); // => int
typeof(DateTime?).GetUnderlyingNullableType(); // => datetime
```

## Just get me the type

In some cases you do not care if a type is nullable or not, you just want to know what the "actual" type is.

```csharp
using RapidCore.Reflection;

typeof(int?).GetTypeOrUnderlyingNullableType(); // => int
typeof(DateTime?).GetTypeOrUnderlyingNullableType(); // => datetime
typeof(string).GetTypeOrUnderlyingNullableType(); // => string
```


text:
/* AUTO-GENERATED FILE.  DO NOT MODIFY.
 *
 * This class was automatically generated by the
 * aapt tool from the resource data it found.  It
 * should not be modified by hand.
 */

package com.example.actionbar;

public final class R {
    public static final class attr {
    }
    public static final class dimen {
        /**  Default screen margins, per the Android Design guidelines.

         Customize dimensions originally defined in res/values/dimens.xml (such as
         screen margins) for sw720dp devices (e.g. 10" tablets) in landscape here.

         */
        public static final int activity_horizontal_margin=0x7f040000;
        public static final int activity_vertical_margin=0x7f040001;
    }
    public static final class drawable {
        public static final int ic_launcher=0x7f020000;
    }
    public static final class id {
        public static final int action_archive=0x7f080010;
        public static final int action_email=0x7f080011;
        public static final int action_settings=0x7f080013;
        public static final int action_stats=0x7f080012;
        public static final int archive_list=0x7f080000;
        public static final int archive_listEmail=0x7f080003;
        public static final int archive_message=0x7f080002;
        public static final int button3=0x7f080004;
        public static final int button_add=0x7f080006;
        public static final int edit_message=0x7f080005;
        public static final int group1=0x7f080014;
        public static final int item1=0x7f080015;
        public static final int item2=0x7f080016;
        public static final int list=0x7f080007;
        public static final int textView1=0x7f080008;
        public static final int textView2=0x7f080009;
        public static final int textView3=0x7f08000c;
        public static final int textView4=0x7f08000b;
        public static final int textView5=0x7f08000a;
        public static final int textView6=0x7f08000d;
        public static final int textView7=0x7f08000f;
        public static final int textView8=0x7f08000e;
        public static final int todo_message=0x7f080001;
    }
    public static final class layout {
        public static final int activity_archive=0x7f030000;
        public static final int activity_email=0x7f030001;
        public static final int activity_main=0x7f030002;
        public static final int activity_usage_stats=0x7f030003;
    }
    public static final class menu {
        public static final int activity_main_action_bar=0x7f070000;
        public static final int archive=0x7f070001;
        public static final int context_menu=0x7f070002;
        public static final int context_menu_archive=0x7f070003;
        public static final int email=0x7f070004;
        public static final int main=0x7f070005;
        public static final int stats=0x7f070006;
        public static final int usage=0x7f070007;
        public static final int usage_stats=0x7f070008;
    }
    public static final class string {
        public static final int action_archive=0x7f050004;
        public static final int action_email=0x7f050006;
        public static final int action_settings=0x7f050001;
        public static final int action_stats=0x7f050005;
        public static final int action_todo=0x7f050003;
        public static final int app_name=0x7f050000;
        public static final int buttonEmailAll=0x7f050020;
        public static final int button_add=0x7f050008;
        public static final int button_emailOther=0x7f05001f;
        public static final int button_emailSelection=0x7f05001e;
        public static final int edit_message=0x7f050007;
        public static final int email_header_archive=0x7f050012;
        public static final int email_header_todo=0x7f050011;
        public static final int hello_world=0x7f050002;
        public static final int stats_archive=0x7f050015;
        public static final int stats_archived_completed=0x7f05001b;
        public static final int stats_archived_total=0x7f05001a;
        public static final int stats_archived_unfinished=0x7f05001c;
        public static final int stats_todo=0x7f050016;
        public static final int stats_todo_completed=0x7f050019;
        public static final int stats_total_todo=0x7f050018;
        public static final int string_empty=0x7f050009;
        public static final int string_unarchive=0x7f05001d;
        public static final int title_activity_archive=0x7f05000e;
        public static final int title_activity_email=0x7f05000f;
        public static final int title_activity_stats=0x7f050010;
        public static final int title_activity_usage=0x7f050013;
        public static final int title_activity_usage_stats=0x7f050014;
        public static final int todo_add=0x7f05000a;
        public static final int todo_archive=0x7f05000d;
        public static final int todo_email=0x7f05000c;
        public static final int todo_incomplete=0x7f050017;
        public static final int todo_remove=0x7f05000b;
    }
    public static final class style {
        /**
        Base application theme, dependent on API level. This theme is replaced
        by AppBaseTheme from res/values-vXX/styles.xml on newer devices.

            Theme customizations available in newer API levels can go in
            res/values-vXX/styles.xml, while customizations related to
            backward-compatibility can go here.

        Base application theme for API 11+. This theme completely replaces
        AppBaseTheme from res/values/styles.xml on API 11+ devices.

 API 11 theme customizations can go here.

        Base application theme for API 14+. This theme completely replaces
        AppBaseTheme from BOTH res/values/styles.xml and
        res/values-v11/styles.xml on API 14+ devices.

 API 14 theme customizations can go here.
         */
        public static final int AppBaseTheme=0x7f060000;
        /**  Application theme.
 All customizations that are NOT specific to a particular API-level can go here.
         */
        public static final int AppTheme=0x7f060001;
    }
}


text:
mvn package -DskipTests
java -jar target/asynch-hello-server-*.jar | tee target/output.log


text:
/*
 * Copyright (C) 2004,
 *
 * Arjuna Technologies Ltd,
 * Newcastle upon Tyne,
 * Tyne and Wear,
 * UK.
 *
 * $Id: xidcheck.java 2342 2006-03-30 13:06:17Z  $
 */

package com.hp.mwtests.ts.jts.orbspecific.interposition;

import static org.junit.Assert.assertTrue;

import org.junit.Test;
import org.omg.CosTransactions.Control;

import com.arjuna.ats.internal.jts.orbspecific.ControlImple;
import com.arjuna.ats.internal.jts.orbspecific.coordinator.ArjunaTransactionImple;
import com.arjuna.ats.internal.jts.orbspecific.interposition.ServerControl;
import com.arjuna.ats.internal.jts.orbspecific.interposition.resources.strict.ServerStrictTopLevelAction;
import com.hp.mwtests.ts.jts.resources.TestBase;

public class ServerTopLevelStrictUnitTest extends TestBase
{
    @Test
    public void test () throws Exception
    {
        ControlImple cont = new ControlImple(null, null);
        Control theControl = cont.getControl();
        ArjunaTransactionImple tx = cont.getImplHandle();
        ServerControl sc = new ServerControl(tx.get_uid(), theControl, tx, theControl.get_coordinator(), theControl.get_terminator());
        ServerStrictTopLevelAction act = new ServerStrictTopLevelAction(sc, true);

        assertTrue(act.interposeResource());
        assertTrue(act.type() != null);
    }
}


text:
layout: page
title: "Kari Natasha Treadwell"
comments: true
description: "blanks"
keywords: "Kari Natasha Treadwell,CU,Boulder"
---
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="https://dl.dropboxusercontent.com/s/pc42nxpaw1ea4o9/highcharts.js?dl=0"></script>
<!-- <script src="../assets/js/highcharts.js"></script> -->
<style type="text/css">@font-face {
	font-family: "Bebas Neue";
	src: url(https://www.filehosting.org/file/details/544349/BebasNeue Regular.otf) format("opentype");
	}
	h1.Bebas {
		font-family: "Bebas Neue", Verdana, Tahoma;
	}
</style>
</head>

#### TEACHING INFORMATION

**College**: College of Arts and Sciences

**Classes taught**: ARTS 1010, ARTS 1020, ARTS 1171, ARTS 2171

#### ARTS 1010: Introduction to Studio Art

**Terms taught**: Fall 2008, Fall 2010

**Instructor rating**: 5.42

**Standard deviation in instructor rating**: 0.36

**Average grade** (4.0 scale): 3.59

**Standard deviation in grades** (4.0 scale): 0.25

**Average workload** (raw): 3.06

**Standard deviation in workload** (raw): 0.13

#### ARTS 1020: Introduction to Studio Art 2

**Terms taught**: Spring 2009, Spring 2011, Fall 2011

**Instructor rating**: 5.76

**Standard deviation in instructor rating**: 0.06

**Average grade** (4.0 scale): 3.85

**Standard deviation in grades** (4.0 scale): 0.06

**Average workload** (raw): 2.92

**Standard deviation in workload** (raw): 0.19

#### ARTS 1171: PHOTOGRAPHY FOR NON-MJRS

**Terms taught**: Fall 2009

**Instructor rating**: 5.79

**Standard deviation in instructor rating**: 0.0

**Average grade** (4.0 scale): 3.46

**Standard deviation in grades** (4.0 scale): 0.0

**Average workload** (raw): 3.71

**Standard deviation in workload** (raw): 0.0

#### ARTS 2171: PHOTOGRAPHY 1

**Terms taught**: Spring 2010

**Instructor rating**: 4.64

**Standard deviation in instructor rating**: 0.0

**Average grade** (4.0 scale): 3.55

**Standard deviation in grades** (4.0 scale): 0.0

**Average workload** (raw): 3.43

**Standard deviation in workload** (raw): 0.0


text:
npm-completion(1) -- Tab Completion for npm
===========================================

## SYNOPSIS

    source <(npm completion)

## DESCRIPTION

Enables tab-completion in all npm commands.

The synopsis above
loads the completions into your current shell.  Adding it to
your ~/.bashrc or ~/.zshrc will make the completions available
everywhere:

    npm completion >> ~/.bashrc
    npm completion >> ~/.zshrc

You may of course also pipe the output of npm completion to a file
such as `/usr/local/etc/bash_completion.d/npm` if you have a system
that will read that file for you.

When `COMP_CWORD`, `COMP_LINE`, and `COMP_POINT` are defined in the
environment, `npm completion` acts in "plumbing mode", and outputs
completions based on the arguments.

## SEE ALSO

* npm-developers(7)
* npm-faq(7)
* npm(1)


text:
module RubyEventStore
  module ROM
    module SQL
      module Changesets
        class CreateEvents < ROM::Changesets::CreateEvents
          def commit
            relation.multi_insert(to_a)
          end
        end
      end
    end
  end
end


text:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical" android:layout_width="match_parent"
  android:layout_height="match_parent">

    <info.ipeanut.youngsamples.recyclerview.windowimageview.WindowImageView
      android:id="@+id/wiv"
      android:layout_width="match_parent"
      android:layout_height="200dp" />

</LinearLayout>


text:
import Component from '@glimmer/component';
import { service } from '@ember/service';

export default class ApplicationHeader extends Component {
    @service('oxi-config') config;
    @service('oxi-content') content;
}


text:
package org.apache.axis2.engine;

import junit.framework.TestCase;
import org.apache.axis2.description.WSDL2Constants;
import org.apache.axis2.wsdl.WSDLConstants.WSDL20_2004_Constants;
import org.apache.axis2.wsdl.WSDLConstants.WSDL20_2006Constants;

public class DispatchPhaseTest extends TestCase {

    /**
     * Verify capability of isOneway method in DispatchPhase.
     */
    public void testIsOneway() {
        String mep = WSDL2Constants.MEP_URI_IN_ONLY;
        DispatchPhase phase = new DispatchPhase();
        boolean oneway = phase.isOneway(mep);
        assertTrue(oneway);
        mep = WSDL20_2004_Constants.MEP_URI_IN_ONLY;
        oneway = phase.isOneway(mep);
        assertTrue(oneway);
        mep = WSDL20_2006Constants.MEP_URI_IN_ONLY;
        oneway = phase.isOneway(mep);
        assertTrue(oneway);
        mep = WSDL2Constants.MEP_URI_IN_OUT;
        oneway = phase.isOneway(mep);
        assertFalse(oneway);
    }

}


text:
require "unicode_utils/lowercase_char_q"
require "unicode_utils/uppercase_char_q"
require "unicode_utils/titlecase_char_q"

module UnicodeUtils

  # A cased char is a character that has the Unicode property
  # Lowercase or Uppercase or the general category Titlecase_Letter.
  #
  # See also: lowercase_char?, uppercase_char?, titlecase_char?
  def cased_char?(char)
    lowercase_char?(char) || uppercase_char?(char) || titlecase_char?(char)
  end
  module_function :cased_char?

end


text:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="400dp"
    android:background="@color/colorWhite">

    <RelativeLayout
        android:id="@+id/weather_now_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/colorWhite">

       <LinearLayout
           android:id="@+id/qlty_layout"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_centerHorizontal="true"
           android:layout_above="@+id/weather_info_text"
           android:layout_marginBottom="5dp"
           >
           <TextView
               android:id="@+id/qlty_info"
               android:text="@string/qlty"
               android:textSize="20sp"
               android:layout_above="@+id/weather_info_text"
               android:layout_width="wrap_content"
               android:textColor="@color/colorFont"
               android:layout_height="wrap_content"
               tools:ignore="ObsoleteLayoutParam,RtlHardcoded" />

           <TextView
               android:id="@+id/qlty"
               android:layout_toRightOf="@+id/qlty_info"
               android:layout_alignBaseline="@+id/qlty_info"
               android:layout_marginLeft="5dp"
               android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:textColor="@color/colorFont"
               android:textSize="20sp"
               tools:ignore="ObsoleteLayoutParam,RtlHardcoded" />

       </LinearLayout>

        <TextView
            android:id="@+id/degree_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:gravity="center"
            android:textColor="@color/colorFont"
            android:textSize="120sp"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_toRightOf="@+id/degree_text"
            android:layout_alignTop="@+id/degree_text"
            android:text="@string/度"
            android:textColor="@color/colorFont"
            android:textSize="120sp"
            tools:ignore="RtlHardcoded" />

        <TextView
            android:id="@+id/weather_info_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_above="@+id/degree_text"
            android:layout_centerHorizontal="true"
            android:textColor="@color/colorFont"
            android:textSize="20sp"/>

        <TextView
            android:id="@+id/update_time_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/degree_text"
            android:layout_centerHorizontal="true"
            android:textColor="@color/colorFont"
            android:textSize="12sp"/>

    </RelativeLayout>

</RelativeLayout>


text:
"use strict";

var TodoList = Cape.createComponentClass({
  render: function(m) {
    m.ul(function(m) {
      this.items.forEach(function(item) {
        this.renderItem(m, item);
      }.bind(this))
    });
    this.renderForm(m);
  },

  renderItem: function(m, item) {
    m.li(function(m) {
      m.label({ class: { completed: item.done }}, function(m) {
        m.onclick(function(e) { this.toggle(item) })
          .checked(item.done).input({ type: 'checkbox' })
        m.text(item.title);
      })
    })
  },

  renderForm: function(m) {
    m.onsubmit(function(e) { this.addItem(); return false; });
    m.formFor('item', function(m) {
      m.onkeyup(function(e) { this.refresh() }).textField('title');
      m.onclick(function(e) { this.addItem() })
        .disabled(this.val('item.title') === '')
        .btn(function(m) { m.fa('plus').sp().text('Add') });
    });
  },

  init: function() {
    this.items = [
      { title: 'Foo', done: false },
      { title: 'Bar', done: true }
    ];
    this.refresh();
  },

  toggle: function(item) {
    item.done = !item.done;
    this.refresh();
  },

  addItem: function() {
    this.items.push({ title: this.val('item.title'), done: false });
    this.val('item.title', '');
    this.refresh();
  }
});


text:
from django.contrib.messages import get_messages
from django.urls import reverse
from django.views import View
from django.shortcuts import render, redirect
from django.contrib.auth import authenticate, login, logout
from django.contrib import messages

from application.const import ROLE_INFO
from application.models import Student, Teacher, Admin

class CheckUserAuthenticatedMixin(object):
    def dispatch(self, request, *args, **kwargs):
        if not request.user.is_authenticated():
            messages.add_message(request, messages.INFO, '请先登录')
            return redirect(to=reverse("login"))
        else:
            return super(CheckUserAuthenticatedMixin, self).dispatch(request, *args, **kwargs)

class Base(View):
    def get(self, request, *args, **kwargs):
        return render(request=request, template_name="base.html")

class Index(View):
    def get(self, request, *args, **kwargs):
        return render(request=request, template_name="index.html", context={"messages": get_messages(request)})

class Login(View):
    def get(self, request, *args, **kwargs):
        return render(request=request, template_name="login.html", context={"messages": get_messages(request)})

    def post(self, request, *args, **kwargs):
        user = authenticate(username=request.POST['username'], password=request.POST['password'])
        if user:
            login(request, user)
            request.session['role'] = request.POST['role']
            return redirect(to=reverse("index"))
        else:
            messages.add_message(request, messages.INFO, '登录失败, 请检查用户名密码')
            return redirect(to=reverse("login"))

class Logout(CheckUserAuthenticatedMixin, View):
    def get(self, request, *args, **kwargs):
        logout(request)
        messages.add_message(request, messages.INFO, '成功退出系统, 您当前已退出。')
        return redirect(to="login")

class MyInfo(CheckUserAuthenticatedMixin, View):
    def get(self, request, *args, **kwargs):
        role = request.session.get('role', None)
        if role not in ROLE_INFO.keys():
            account_role = "未知"
        else:
            account_role = ROLE_INFO[role]
        if role == "student":
            user_obj = Student.objects.filter(user__username=request.user.username).first()
        elif role == "teacher":
            user_obj = Teacher.objects.filter(user__username=request.user.username).first()
        elif role == "admin":
            user_obj = Admin.objects.filter(user__username=request.user.username).first()
        else:
            user_obj = None
        data = {
            'role': account_role,
            'username': request.user.username,
            'create_by': user_obj.create_by.username,
            'create_at': user_obj.create_at
        }
        return render(request=request, template_name="my_info.html", context={'data': data})

class ChangePassword(CheckUserAuthenticatedMixin, View):
    def get(self, request, *args, **kwargs):
        return render(request=request,
                      template_name="change_password.html",
                      context={"messages": get_messages(request)})

    def post(self, request, *args, **kwargs):
        old_password = request.POST['old_password']
        new_password = request.POST['new_password']
        confirm_password = request.POST['confirm_password']
        if confirm_password != new_password or len(new_password) < 8:
            messages.add_message(request, messages.INFO, '修改失败, 两次密码输入不一致或者新密码长度不规范')
            return redirect(to="change_password")
        if not request.user.check_password(old_password):
            messages.add_message(request, messages.INFO, '修改失败, 原密码不正确')
            return redirect(to="change_password")
        try:
            request.user.set_password(new_password)
            request.user.save()
        except Exception:
            messages.add_message(request, messages.INFO, '修改失败')
            return redirect(to="change_password")
        else:
            messages.add_message(request, messages.INFO, '修改成功')
            return redirect(to="login")


text:
package gov.hhs.fha.nhinc.docsubmission.nhin.deferred.response.proxy11;

import gov.hhs.fha.nhinc.common.nhinccommon.AssertionType;
import gov.hhs.fha.nhinc.common.nhinccommon.NhinTargetSystemType;
import gov.hhs.fha.nhinc.nhinclib.NhincConstants;
import gov.hhs.healthit.nhin.XDRAcknowledgementType;
import oasis.names.tc.ebxml_regrep.xsd.rs._3.RegistryResponseType;

/**
 *
 * @author JHOPPESC
 */
public class NhinDocSubmissionDeferredResponseProxyNoOpImpl implements NhinDocSubmissionDeferredResponseProxy {
    private static org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(NhinDocSubmissionDeferredResponseProxyNoOpImpl.class);

    public XDRAcknowledgementType provideAndRegisterDocumentSetBDeferredResponse11(RegistryResponseType body, AssertionType assertion, NhinTargetSystemType target) {
        log.debug("Using NoOp Implementation for Nhin Doc Submission Deferred Response Service");
        XDRAcknowledgementType ack = new XDRAcknowledgementType();
        RegistryResponseType regResp = new RegistryResponseType();
        regResp.setStatus(NhincConstants.XDR_RESP_ACK_STATUS_MSG);
        ack.setMessage(regResp);
        return ack;
    }

}