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 (*block_height % 100 == 0 && progress_end - progress_begin > 0.0) {
            ShowProgress(strprintf("%s " + _("Rescanning...").translated, GetDisplayName()), std::max(1, std::min(99, (int)(m_scanning_progress * 100))));
        }
        if (GetTime() >= nNow + 60) {
            nNow = GetTime();
            WalletLogPrintf("Still rescanning. At block %d. Progress=%f\n", *block_height, progress_current);
        }
        CBlock block;
        if (chain().findBlock(block_hash, &block) && !block.IsNull()) {
            auto locked_chain = chain().lock();
            LOCK(cs_wallet);
            if (!locked_chain->getBlockHeight(block_hash)) {
                
                
                
                
                result.last_failed_block = block_hash;
                result.status = ScanResult::FAILURE;
                break;
            }
            for (size_t posInBlock = 0; posInBlock < block.vtx.size(); ++posInBlock) {
                SyncTransaction(block.vtx[posInBlock], block_hash, posInBlock, fUpdate);
            }
            
            result.last_scanned_block = block_hash;
            result.last_scanned_height = *block_height;
        } else {
            
            result.last_failed_block = block_hash;
            result.status = ScanResult::FAILURE;