Here is a proposed release schedule for 0.19.0, the next major release of Bitcoin Core. Like for previous major releases I've aimed for a release 6 months after the last ( #14438).

2019-09-01 :heavy_check_mark: 
---------------
- Open Transifex translations for 0.19
- Soft translation string freeze (no large or unnecessary string changes until release)
- Finalize and close translations for 0.17

2019-09-15 :heavy_check_mark: 
---------------
- Feature freeze (bug fixes only until release)
- Translation string freeze (no more source language changes until release)

2019-10-01 :heavy_check_mark: 
---------------
- Split off `0.19` branch from `master`
- Start RC cycle, tag and release `0.19.0rc1`
- Start merging for 0.20 on master branch

2019-11-03 :heavy_check_mark:
---------------
- Release 0.19.0 final (aim)

If any specific dates or timeframes are a problem for you, let me know.

**Edit:** schedule was moved two months back on 2019-05-07, for reference, the old schedule was:
```
2019-11-01    Soft translation string freeze
2019-11-15    Feature freeze
2019-12-01    Split off 0.19 branch from master
2020-01-03    Release 0.19.0 final (aim)
```
if (ratio != 0) {
        mempool.setSanityCheck(1.0 / ratio);
    }
    fCheckBlockIndex = gArgs.GetBoolArg("-checkblockindex", chainparams.DefaultConsistencyChecks());
    fCheckpointsEnabled = gArgs.GetBoolArg("-checkpoints", DEFAULT_CHECKPOINTS_ENABLED);
    hashAssumeValid = uint256S(gArgs.GetArg("-assumevalid", chainparams.GetConsensus().defaultAssumeValid.GetHex()));
    if (!hashAssumeValid.IsNull())
        LogPrintf("Assuming ancestors of block %s have valid signatures.\n", hashAssumeValid.GetHex());
    else
        LogPrintf("Validating signatures for all blocks.\n");
    if (gArgs.IsArgSet("-minimumchainwork")) {
        const std::string minChainWorkStr = gArgs.GetArg("-minimumchainwork", "");
        if (!IsHexNumber(minChainWorkStr)) {
            return InitError(strprintf("Invalid non-hex (%s) minimum chain work value specified", minChainWorkStr));
        }
        nMinimumChainWork = UintToArith256(uint256S(minChainWorkStr));
    } else {
        nMinimumChainWork = UintToArith256(chainparams.GetConsensus().nMinimumChainWork);
    }
    LogPrintf("Setting nMinimumChainWork=%s\n", nMinimumChainWork.GetHex());
    if (nMinimumChainWork < UintToArith256(chainparams.GetConsensus().nMinimumChainWork)) {
        LogPrintf("Warning: nMinimumChainWork set below default value of %s\n", chainparams.GetConsensus().nMinimumChainWork.GetHex());
    }
    
    int64_t nMempoolSizeMax = gArgs.GetArg("-maxmempool", DEFAULT_MAX_MEMPOOL_SIZE) * 1000000;
    int64_t nMempoolSizeMin = gArgs.GetArg("-limitdescendantsize", DEFAULT_DESCENDANT_SIZE_LIMIT) * 1000 * 40;
    if (nMempoolSizeMax < 0 || nMempoolSizeMax < nMempoolSizeMin)
        return InitError(strprintf(_("-maxmempool must be at least %d MB").translated, std::ceil(nMempoolSizeMin / 1000000.0)));