Version 4.0.0-rc.2
====================================================

Release Date: Sept 27, 2019

**RC.2 release of CodeIgniter4**

Enhancements:

- query builder testability simplified with new property, but dropped
    method parameters (breaking change)
- database, migrations and sessions beefed up
- numerous smaller bugs corrected

App changes:

- Config/Constants, Paths & some config settings have had changes

Message changes:

- N/A

The list of changed files follows, with PR numbers shown.

- admin/

- app/
	- Config/
		- Boot/* #2241
		- Constants #2183
		- Paths #2181
- public/

- system/
	- CLI/
		- BaseCommand #2231
	- Database/
		- MySQLi/Connection #2201, 2229
		- Postgre/
                    - BaseBuilder #2269
                    - Connection #2201
		- SQLite3/Connection #2201, 2228, 2230
		- BaseBuilder #2257, 2232, 2269, 2270
		- BaseConnection #2208, 2213, 2231
		- Config #2224
		- Forge #2205
		- MigrationRunner #2191
	- Debug/
		- Exceptions #2262
	- Encryption/
		- Encryption #2231
		- Handlers/BaseHandler #2231
	- Files/
		- FileCollection #2265
	- HTTP/
		- CURLRequest #2168
		- IncomingRequest #2265
		- Request #2253
		- Response #2253
	- I18n/
		- Time #2231
		- TimeDifference #2231
	- Images/
		- Handlers/BaseHandler #2246
	- RESTful/
		- ResourcePresenter #2271
	- Security/
		- Security #2240
	- Session/
		- Session #2197, 2231
	- Test/
		- CIDatabaseTestCase #2205
		- CIDatabaseUnitTestCase #2184
	- Validation/
		- FileRules #2265
		- Validation #2268
	- View/
		- Parser #2264

	- Common #2200, 2209, 2261
	- Model #2231

- tests/_support/

- tests/system/
	- Commands/
		- CommandClassTest #2231
	- Database/
		- Builder/
			- GetTest #2232
                        - CountTest #2269
                        - DeleteTest #2269
                        - EmptyTest #2269
                        - GetTest #2269
			- GroupTest #2257
                        - InsertTest #2269
                        - ReplaceTest #2269
                        - TruncateTest #2269
                        - UpdateTest #2269
		- Live/
			- EscapeTest #2229
			- ForgeTest #2201, 2211
			- GroupTest #2257
			- MetadataTest #2211
			- ModelTest #2231
		- BaseConnectionTest #2229, 2231
	- Encryption/
		- EncryptionTest #2231
	- Helpers/
		- URLHelperTest #2259
	- HTTP/
		- CURLRequestTest #2168
		- FileCOllectionTest #2265
		- URITest #2259
	- I18n/
		- TimeDifferenceTest #2231
		- TimeTest #2231
	- Pager/
		- pagerTest #2259
	- RESTful/
		- ResourcePresenterTest #2271
	- Session/
		- SessionTest #2231
	- View/
		- ParserTest #2264

- user_guide_src/
	- concepts/
		- structure #2221
	- database/
		- metadata #2199, 2201, 2208
		- queries #2208
		- query_builder #2257, 2232, 2269
	- dbmgmt/
		- migration #2190, 2191
	- extending/
		- contributing #2221
	- general/
		- errors #2221
	- helpera/
		- url_helper #2259
	- incoming/
		- restful #2189
		- routing #2221
	- installation/
		- troubleshooting #2260
	- libraries/
		- encryption #2221
		- pagination #2216
		- time #2221
		- uti #2216
	- outgoing/
		- api_responses #2245
		- view_layouts #2218
		- view_parser #2218, 2264
	- testing/
		- controllers #2221
		- debugging #2221, 2209
		- feature #2218, 2221
		- overview #2221
	- tutorial/
		- news_section #2221
		- static_pages #2221


PRs merged:
--------------------------

- #2271 fix ResourcePresenter::setModel()
- #2270 groupStart() refactorization
- #2269 testMode() method for BaseBuilder
- #2268 Validation session use only if exists
- #2267 Tests setUp and tearDown: void
- #2265 Fix a validation issue on multiple file upload
- #2264 fix. Parser allow other extension
- #2262 Fix parameter type in Debug/Exceptions
- #2261 Fix lang() signature
- #2260 Explain the whoops page
- #2259 Add URI & url_helper tests
- #2257 Several updates to the HAVING clauses
- #2253 Fix invalid parameters
- #2246 EXIF not supported for GIF
- #2245 Fix class ref parameter types
- #2241 Fix ini_set parameter type
- #2240 Handle JSON POSTs in CSRF
- #2232 Fixes BaseBuilder getWhere() bug
- #2231 Add magic __isset to classes with __get
- #2230 Add escape to SQLite _listTables()
- #2229 MySQLi escapeLikeStringDirect()
- #2228 Exclude `sqlite_%` from listTables()
- #2224 change new \Config\Database() to config('Database')
- #2221 Documentation fixes
- #2218 Typo corrected
- #2216 Update uri.rst
- #2213 Filter listTables cache response on constrainPrefix
- #2211 Add listTable() tests
- #2209 Add trace()
- #2208 Add $db->getPrefix()
- #2205 Fix empty() bug on DBPrefix
- #2201 Foreign key columns
- #2200 Notify Kint of dd alias
- #2199 Add getForeignKeyData to User Guide
- #2187 Update Session.php
- #2191 Migration rollback reverse
- #2190 Fix name of ForeignKeyChecks
- #2189 missing return
- #2184 Fix case on "Seeds/" directory
- #2183 Check `defined` for constants
- #2181 Remove copy-paste extraneous text
- #2168 Fix for CURL for 'debug' option
