Skip to content

Bump docker/login-action from 1 to 2 - #5

Open
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/github_actions/docker/login-action-2
Open

Bump docker/login-action from 1 to 2#5
dependabot[bot] wants to merge 1 commit into
masterfrom
dependabot/github_actions/docker/login-action-2

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 28, 2022

Copy link
Copy Markdown

Bumps docker/login-action from 1 to 2.

Release notes

Sourced from docker/login-action's releases.

v2.0.0

  • Node 16 as default runtime by @​crazy-max (#161)
    • This requires a minimum Actions Runner version of v2.285.0, which is by default available in GHES 3.4 or later.
  • chore: update dev dependencies and workflow by @​crazy-max (#170)
  • Bump @​actions/exec from 1.1.0 to 1.1.1 (#167)
  • Bump @​actions/io from 1.1.1 to 1.1.2 (#168)
  • Bump minimist from 1.2.5 to 1.2.6 (#176)
  • Bump https-proxy-agent from 5.0.0 to 5.0.1 (#182)

Full Changelog: docker/login-action@v1.14.1...v2.0.0

v1.14.1

  • Revert to Node 12 as default runtime to fix issue for GHE users (#160)

v1.14.0

  • Update to node 16 (#158)
  • Bump @​aws-sdk/client-ecr from 3.45.0 to 3.53.0 (#157)
  • Bump @​aws-sdk/client-ecr-public from 3.45.0 to 3.53.0 (#156)

v1.13.0

  • Handle proxy settings for aws-sdk (#152)
  • Workload identity based authentication docs for GCR and GAR (#112)
  • Test login against ACR (#49)
  • Bump @​aws-sdk/client-ecr from 3.44.0 to 3.45.0 (#132)
  • Bump @​aws-sdk/client-ecr-public from 3.43.0 to 3.45.0 (#131)

v1.12.0

  • ECR: only set credentials if username and password are specified (#128)
  • Refactor to use aws-sdk v3 (#128)

v1.11.0

  • ECR: switch implementation to use the AWS SDK (#126)
  • ecr input to specify whether the given registry is ECR (#123)
  • Test against Windows runner (#126)
  • Update instructions for Google registry (#127)
  • Update dev workflow (#111)
  • Small changes for GHCR doc (#86)
  • Update dev dependencies (#85)
  • Bump ansi-regex from 5.0.0 to 5.0.1 (#101)
  • Bump tmpl from 1.0.4 to 1.0.5 (#100)
  • Bump @​actions/core from 1.4.0 to 1.6.0 (#94 #103)
  • Bump codecov/codecov-action from 1 to 2 (#88)
  • Bump hosted-git-info from 2.8.8 to 2.8.9 (#83)
  • Bump node-notifier from 8.0.0 to 8.0.2 (#82)
  • Bump ws from 7.3.1 to 7.5.0 (#81)
  • Bump lodash from 4.17.20 to 4.17.21 (#80)
  • Bump y18n from 4.0.0 to 4.0.3 (#79)

v1.10.0

  • GitHub Packages Docker Registry deprecated (#78)

... (truncated)

Commits
  • 49ed152 Merge pull request #161 from crazy-max/node16-runtime
  • b61a9ce Node 16 as default runtime
  • 3a136a8 Merge pull request #182 from docker/dependabot/npm_and_yarn/https-proxy-agent...
  • b312880 Update generated content
  • 795794e Bump https-proxy-agent from 5.0.0 to 5.0.1
  • 1edf618 Merge pull request #179 from docker/dependabot/github_actions/codecov/codecov...
  • 8e66ad4 Bump codecov/codecov-action from 2 to 3
  • 7c79b59 Merge pull request #176 from docker/dependabot/npm_and_yarn/minimist-1.2.6
  • 24a38e0 Bump minimist from 1.2.5 to 1.2.6
  • 70e1ff8 Merge pull request #170 from crazy-max/eslint
  • Additional commits viewable in compare view

Dependabot compatibility score

You can trigger a rebase of this PR by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Note
Automatic rebases have been disabled on this pull request as it has been open for over 30 days.

Bumps [docker/login-action](https://github.com/docker/login-action) from 1 to 2.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](docker/login-action@v1...v2)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code labels Aug 28, 2022
wirybeaver pushed a commit that referenced this pull request Jun 14, 2026
…tionIdNormalizer (apache#18446)

* Make PartitionFunction registry dynamic; move impls to pinot-common

Replaces the closed `PartitionFunctionFactory` enum/switch with an
annotation-based registry so plug-in partition functions no longer
require touching segment-spi code.

- Add `@PartitionFunctionType(names = {...})` annotation in pinot-spi.
- Convert `PartitionFunctionFactory` to a classpath-scanning registry
  (regex `.*\.partition\.function\..*`); the factory keeps the same
  static API, callers are unchanged. Add `init()` mirroring
  `FunctionRegistry.init()` and wire it from broker / server /
  controller starters.
- Move the seven built-in impls (`Modulo`, `Murmur` / `Murmur2`,
  `Murmur3`, `Fnv`, `HashCode`, `ByteArray`, `BoundedColumnValue`)
  out of `pinot-segment-spi` into
  `pinot-common/.../partition/function/`, standardize their
  constructor on `(int numPartitions, Map<String,String> functionConfig)`,
  and annotate each.
- Add `PartitionIntNormalizer` enum (`POSITIVE_MODULO` / `ABS` / `MASK`)
  in pinot-segment-spi and a default `getPartitionIdNormalizer()` on
  `PartitionFunction` so impls can declare which normalizer matches
  their internal modulo semantics. Used by the framework only for
  identity / staleness matching between config-side and segment-side
  metadata; legacy impls still compute their own modulo. Javadoc spells
  out the descriptive-only nature of the value for legacy functions.
- Tests: existing `PartitionFunctionTest` (19 cases) moved to
  pinot-common; new `PartitionFunctionFactoryTest` covers
  registration completeness, alias resolution (`Murmur` /
  `Murmur2`), case-insensitive lookup, idempotent `init()`,
  unknown-name rejection, and per-impl normalizer label;
  new `PartitionIntNormalizerTest` covers per-normalizer math at
  edge cases (`Integer.MIN_VALUE`, `Integer.MAX_VALUE`),
  range invariant across all normalizers, and `fromConfigString`
  round-trip / blank / unknown.

Plug-in path going forward: drop a class on the classpath under
`*.partition.function.*`, implement `PartitionFunction` with the
standard ctor, add `@PartitionFunctionType(names = "MyFn")` - the
registry picks it up at startup.

NOTE - backward-incompat: the seven impl classes' fully-qualified
names changed (`org.apache.pinot.segment.spi.partition.*` ->
`org.apache.pinot.common.partition.function.*`) and the no-Map
constructors on `Modulo` / `HashCode` / `ByteArray` are gone in favor
of the standard `(int, Map<String,String>)` form. `getName()` strings
(`Modulo`, `Murmur`, ...) are unchanged, so segment-on-disk metadata
is unaffected.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Drop FnvPartitionFunction inner enum; use PartitionIntNormalizer directly

Removes the duplicated `NegativePartitionHandling` inner enum in
`FnvPartitionFunction` and the `_negativePartitionHandling` field in
favor of a single `_normalizer` of type `PartitionIntNormalizer`. The
config key (`negativePartitionHandling`) and accepted values stay
unchanged for `mask` / `abs`; `positive_modulo` is now also
acceptable (strict superset). The error message for unknown values
now comes from `PartitionIntNormalizer.fromConfigString`.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Make getPartitionIdNormalizer() non-null on PartitionFunction

The interface default now returns `PartitionIntNormalizer.POSITIVE_MODULO`
instead of null, and `@Nullable` is dropped from the method. Plug-ins
that don't map onto a standard normalizer (e.g. `BoundedColumnValue`,
which already produces ids in `[0, N)`) inherit the safe default
without needing an explicit override.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Make getPartitionIdNormalizer() abstract; each impl declares its own

Removes the interface default so every PartitionFunction must explicitly
pick a normalizer. BoundedColumnValuePartitionFunction now overrides
with POSITIVE_MODULO (no-op label, since its output is already a fixed
mapping in [0, N)).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Drive each partition function's int-to-id mapping via _normalizer field

Every built-in PartitionFunction now stores a `_normalizer` of type
PartitionIntNormalizer and applies it in `getPartition(...)` rather
than open-coding the modulo logic. Defaults match prior behavior:

| Impl              | Default normalizer |
|-------------------|--------------------|
| Modulo            | POSITIVE_MODULO    |
| Murmur / Murmur2  | MASK               |
| Murmur3           | MASK               |
| Fnv               | MASK               |
| HashCode          | KAFKA_ABS (new)    |
| ByteArray         | KAFKA_ABS (new)    |
| BoundedColumnValue| POSITIVE_MODULO    |

Adds `KAFKA_ABS` to PartitionIntNormalizer to cover the Kafka-style
`abs(hash) % N` (with `Integer.MIN_VALUE -> 0`) used by HashCode and
ByteArray. With KAFKA_ABS in place the normalizer is now an
authoritative driver of the partition-id computation, not just a
descriptive label - the interface Javadoc is updated accordingly.

Unifies the per-impl override path under a single config key
`partitionIdNormalizer` (case-insensitive), parsed via shared
`PartitionFunctionConfigs#normalizer`. Drops the FNV-specific
`negativePartitionHandling` key.

Tests:
- New `KAFKA_ABS` cases in PartitionIntNormalizerTest covering the
  MIN_VALUE corner.
- New `testPartitionIdNormalizerConfigOverridesDefaultAcrossImpls`
  in PartitionFunctionFactoryTest verifying the config rewires the
  computed partition for HashCode, Modulo, and ByteArray.
- FNV tests updated to use `partitionIdNormalizer` config key.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Convert new Javadoc to JEP 467 markdown style

Switches all new Javadoc blocks added by this PR from `/** */` block
syntax to `///` markdown syntax (JEP 467), matching the convention
established in apache#18165 and the rest of the recently-touched
pinot-segment-spi files. Replaces `<p>`, `<ul>/<li>`, `<code>`,
`{@code X}`, `{@link X}` HTML/Javadoc tags with their markdown
equivalents (paragraph breaks, `-` lists, backticks, `[X]` refs).
License headers remain as `/** */` block comments.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Address PR review feedback

- Rename `PartitionIntNormalizer` -> `PartitionIdNormalizer` (Jackie #3).
- Rename `KAFKA_ABS` -> `PRE_MODULO_ABS` to make the pre-vs-post-modulo
  distinction with `ABS` explicit (Jackie #4).
- Change `getPartitionIdNormalizer()` to return `PartitionIdNormalizer`
  enum directly instead of `String`; drop `@JsonIgnore` so the field is
  visible in serialized form (Jackie #2). Method stays abstract -- every
  PartitionFunction implementation declares its own normalizer.
- Drop the redundant `_normalizer` field from
  `BoundedColumnValuePartitionFunction`; it now returns
  `PartitionIdNormalizer.POSITIVE_MODULO` directly since its output is
  already a fixed mapping in `[0, numPartitions)` (Jackie #6).
- Make `@PartitionFunctionType` annotation optional. The factory now
  scans every public, concrete `PartitionFunction` subtype under the
  `org.apache.pinot.*` package tree. When a class lacks the annotation
  (or `names()` is empty), the registry probes
  `PartitionFunction.getName()` by instantiating with `(1, null)` and
  registers under the returned name (Jackie #5). Annotation is now a
  pure aliasing / overriding mechanism.
- Fix Javadoc on `@PartitionFunctionType` and `PartitionFunctionFactory`
  to drop the incorrect "any plugin package" claim and the unimplemented
  "stripping underscores" note (Copilot #1, #2, #4).
- Add `UnannotatedTestPartitionFunction` fixture + factory test that
  exercises the no-annotation `getName()` fallback path.
- Update `PartitionFunctionTest` to expect 4 JSON fields (the new
  `partitionIdNormalizer` field is no longer hidden).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Trim and reject blank @PartitionFunctionType names; fall back to getName()

Validates each entry in `@PartitionFunctionType.names()` at registry
build time:

- Each entry is trimmed of surrounding whitespace.
- Blank entries are dropped silently.
- When ALL declared entries are blank (or the array is empty after
  filtering), the registry logs a warning and falls back to probing
  `PartitionFunction.getName()`, the same path used for unannotated
  classes.

This prevents a misconfigured annotation (e.g. `names = {"  "}`) from
silently registering a function under an empty canonical name, making
it undiscoverable at lookup time.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Drop @PartitionFunctionType annotation; drive registry from getNames() default

The annotation added no value beyond what `PartitionFunction.getName()`
already returned for every built-in. Remove it entirely and let the
interface itself declare the registry contract:

- New default `List<String> getNames()` on `PartitionFunction` returns
  `[getName()]`. The factory's static scan instantiates each subtype
  with `(1, null)` and registers under whatever `getNames()` returns.
- Only `MurmurPartitionFunction` overrides `getNames()` (returns
  `["Murmur", "Murmur2"]` so both aliases resolve to the same impl);
  the other six built-ins use the default.
- `getNames()` is `@JsonIgnore`'d so it doesn't pollute the
  serialized form (`testBasicProperties` JSON-shape assertion stays
  at four fields).
- `BoundedColumnValuePartitionFunction`'s ctor now tolerates `null`
  config (probe path) and defers validation; real-config use still
  throws as before. `getPartition()` rejects probe-built instances.
- `@PartitionFunctionType` annotation file deleted.
- `UnannotatedTestPartitionFunction` fixture removed (no longer
  meaningful now that every class is "unannotated").
- Added two new factory tests covering the default `getNames()`
  behavior and Murmur's override.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* Add NO_OP PartitionIdNormalizer for already-in-range outputs

`BoundedColumnValuePartitionFunction` produces a fixed mapping in
`[0, numPartitions)` by construction; the previous label was
`POSITIVE_MODULO` (a no-op for in-range values, but semantically
overloaded). Add an explicit `NO_OP` value that is the identity on
its inputs and use it for `BoundedColumnValue`. The framework does
not validate that callers actually pass in-range values to NO_OP —
out-of-range inputs yield out-of-range partition ids, by design.

`PartitionIdNormalizerTest#testRangeFoldingNormalizersReturnInRange`
(was `testAllNormalizersReturnInRange`) now skips NO_OP since the
range invariant doesn't apply. New `testNoOpIsIdentity` locks the
identity-with-narrowing semantics including the explicit
out-of-range pass-through.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants