PHPackages                             sitegeist/scentmark - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Caching](/categories/caching)
4. /
5. sitegeist/scentmark

ActiveNeos-package[Caching](/categories/caching)

sitegeist/scentmark
===================

v3.0.0(1y ago)012.3k↑250%GPL-3.0-or-laterPHPPHP &gt;= 8.1

Since Feb 26Pushed 1y ago3 watchersCompare

[ Source](https://github.com/sitegeist/Sitegeist.ScentMark)[ Packagist](https://packagist.org/packages/sitegeist/scentmark)[ RSS](/packages/sitegeist-scentmark/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (4)Dependencies (1)Versions (8)Used By (0)

Sitegeist.ScentMark
===================

[](#sitegeistscentmark)

Mark and Bark on Neos via CLI. This can help to orchestrate tasks in Cluster Environments where certain tasks like cache flushing or publishing of static resources shall only be executed on the first container of a newly deployed app version or on only one of many containers.

NOTE: This goes well together with the sitegeist/treasuremap package that implements green/blue caching but can be used for other purposes as well.

Usage
-----

[](#usage)

The package contains three cli commands:

### `./flow  scentmark:mark`

[](#flow--scentmarkmark)

```
Mark the current deployment with the pack scent.

COMMAND:
  sitegeist.scentmark:scentmark:mark

USAGE:
  ./flow scentmark:mark

ARGUMENTS:
  --pack-scent

DESCRIPTION:
  Returns status code 0 if the pack was new and successfully marked
  Returns status code 1 if the pack was already known beforehand

```

### `./flow  scentmark:bark`

[](#flow--scentmarkbark)

```
Select pack leader by passing packScent and leaderScent. If no leader is currently elected the first one asking

COMMAND:
  sitegeist.scentmark:scentmark:bark

USAGE:
  ./flow scentmark:bark

ARGUMENTS:
  --pack-scent
  --leader-scent

DESCRIPTION:
  for the role is granted leader status for one hour

  Returns status code 0 if the $packScent and $leaderScent match and the current pod is considered leader for a time
  Returns status code 1 if the current pod is not the leader for now

```

### `./flow  scentmark:cleanup`

[](#flow--scentmarkcleanup)

```
Remove the oldest packs but keep a specified number of items

COMMAND:
  sitegeist.scentmark:scentmark:cleanup

USAGE:
  ./flow scentmark:cleanup

ARGUMENTS:
  --keep

```

Examples
--------

[](#examples)

### Run jobs on the first container of a new release

[](#run-jobs-on-the-first-container-of-a-new-release)

start.sh:

```
// check wether a release (pack) with the given scent is already known
./flow scentmark:mark $APP_VERSION

// tasks to run on the first pod/container of a release (pack)
if [ $? -eq 0 ]; then
    // flush caches ... ensure they are configured with green / blue backends
fi
```

### Run jobs on only one container (pack leader) of a release

[](#run-jobs-on-only-one-container-pack-leader-of-a-release)

cron.sh:

```
// check wether the current pod is pack leader or can be promoted to lead status
./flow scentmark:bark $APP_VERSION $POD_ID

// tasks to run on eacatly one container only
if [ $? -eq 0 ]; then
    // flush caches ... ensure they are configured with green / blue backends
fi
```

### Authors &amp; Sponsors

[](#authors--sponsors)

- Martin Ficzel -
- Melanie Wüst -

*The development and the public-releases of this package is generously sponsored by our employer .*

Installation
------------

[](#installation)

Sitegeist.ScentMark is available via packagist. Run `composer require sitegeist/scentmark` to require this package.

We use semantic-versioning so every breaking change will increase the major-version number.

Contribution
------------

[](#contribution)

We will gladly accept contributions. Please send us pull requests.

###  Health Score

36

—

LowBetter than 82% of packages

Maintenance32

Infrequent updates — may be unmaintained

Popularity24

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity66

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~402 days

Total

4

Last Release

699d ago

Major Versions

v1.0.1 → v2.0.02024-05-13

v2.0.0 → v3.0.02024-06-18

### Community

Maintainers

![](https://www.gravatar.com/avatar/829b4ccb51e8cff3c1e4b59d60cfe8d1b86f6d77fc31a6b3fc99227f432542ca?d=identicon)[mficzel](/maintainers/mficzel)

---

Top Contributors

[![mficzel](https://avatars.githubusercontent.com/u/1309380?v=4)](https://github.com/mficzel "mficzel (12 commits)")

---

Tags

cacheflowframeworkneoscms

### Embed Badge

![Health badge](/badges/sitegeist-scentmark/health.svg)

```
[![Health](https://phpackages.com/badges/sitegeist-scentmark/health.svg)](https://phpackages.com/packages/sitegeist-scentmark)
```

###  Alternatives

[react/cache

Async, Promise-based cache interface for ReactPHP

444112.4M40](/packages/react-cache)[wp-media/wp-rocket

Performance optimization plugin for WordPress

7431.3M3](/packages/wp-media-wp-rocket)[illuminate/cache

The Illuminate Cache package.

12835.6M1.4k](/packages/illuminate-cache)[colinmollenhour/php-redis-session-abstract

A Redis-based session handler with optimistic locking

6325.6M14](/packages/colinmollenhour-php-redis-session-abstract)[cheprasov/php-redis-client

Php client for Redis. It is a fast, fully-functional and user-friendly client for Redis, optimized for performance. RedisClient supports the latest versions of Redis starting from 2.6 to 6.0

1281.2M21](/packages/cheprasov-php-redis-client)[amphp/redis

Efficient asynchronous communication with Redis servers, enabling scalable and responsive data storage and retrieval.

165634.7k44](/packages/amphp-redis)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
