Backward compatibility¶
indexnowkit/sitemap follows SemVer and the tiers of the core's docs/bc.md.
Before 1.0, minor versions may contain breaking changes, listed under "Changed" in CHANGELOG.md.
| Tier | Members |
|---|---|
| Call — signatures only grow by appended, defaulted parameters; pass anything past the first argument by name | SitemapReader (constructor, fromConfig(), read(), parse()), SitemapConfig (constructor, fromArray(), disabled()), Console\SitemapRunner (constructor and the static changedSince(): the clock, $now and the store of seen URLs are appended, optional), Console\SitemapCommand (the indexnow:sitemap name is a contract, the description is not), Console\SitemapOptions, Check\SitemapSpoolCheck, Adapter\SitemapServices (runner() grows by the named $seen), Spool::create(), probeDisk(), uri(), close() |
| Implement — methods are not added without a major version | SitemapSourceInterface, SeenStoreInterface (new in 0.9: unseen(), remember(); a capability the runner needs later comes as a new interface) |
Value objects — final readonly, properties only appended with defaults |
SitemapEntry, SitemapConfig |
| Constants — referenced, not hard-coded; values may change in a minor | SitemapReader::MAX_XML_BYTES, MAX_SITEMAPS, SitemapConfig::OPTIONS, DEFAULT_MAX_DEPTH, DEFAULT_FETCH_RETRIES, MIN_MAX_BYTES, Spool::SCHEME |
| Enum — closed set | SpoolMode |
Not covered: Spool's stream_* methods (the PHP stream-wrapper protocol, @internal), log and exception message
texts, anything under tests/.
Adapters pin indexnowkit/sitemap, indexnowkit/core and indexnowkit/console together: a SitemapReader of this
package over an older core is refused by Composer, on purpose (0.1 clashed with the classes core 0.3 still shipped;
0.3 needs the Adapter\SubmitterFactory of core 0.7 and the runners of indexnowkit/console).