Skip to content

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 objectsfinal 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).