Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,14 @@ All notable changes to the Apify Java client are documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project
adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.6.2] - 2026-08-28

### Changed

- Bumped `Version.API_SPEC_VERSION` to `v2-2026-08-27T071624Z` and `Version.CLIENT_VERSION` to
`0.6.2`.
- Reworded a stale temporal reference ("(this PR)") in a `spotbugs-exclude.xml` comment.

## [0.6.1] - 2026-08-15

### Fixed
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ Maven (Maven Central is a default repository, so no extra configuration is neede
<dependency>
<groupId>com.apify</groupId>
<artifactId>apify-client</artifactId>
<version>0.6.1</version>
<version>0.6.2</version>
</dependency>
```

Expand All @@ -35,7 +35,7 @@ repositories {
}

dependencies {
implementation 'com.apify:apify-client:0.6.1'
implementation 'com.apify:apify-client:0.6.2'
}
```

Expand Down Expand Up @@ -293,10 +293,10 @@ try {
The public `com.apify.client.Version` class (`import com.apify.client.Version;`) exposes two
constants:

- `Version.CLIENT_VERSION` — the semantic version of this client (`0.6.1`).
- `Version.CLIENT_VERSION` — the semantic version of this client (`0.6.2`).
- `Version.API_SPEC_VERSION` — the version of the [Apify OpenAPI specification](https://docs.apify.com/api/openapi.json)
(its `info.version` field) that this client's endpoints, parameters and models were last generated
and checked against (`v2-2026-08-14T072928Z`). It is a snapshot, not a live compatibility
and checked against (`v2-2026-08-27T071624Z`). It is a snapshot, not a live compatibility
guarantee: the client keeps working against newer, backward-compatible spec revisions, but a
feature added to the API after this snapshot has no corresponding method here yet.

Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>com.apify</groupId>
<artifactId>apify-client</artifactId>
<version>0.6.1</version>
<version>0.6.2</version>
<packaging>jar</packaging>

<name>Apify Java Client</name>
Expand Down
26 changes: 13 additions & 13 deletions spotbugs-exclude.xml
Original file line number Diff line number Diff line change
Expand Up @@ -33,19 +33,19 @@
traces a record's synthesized accessor and canonical constructor), so this pair of exclusions is
specific to the record form.

4. EI_EXPOSE_REP on the specific getters listed below, each returning a field whose type was just
changed (this PR) to extend the shared {@code ApifyResource} forward-compatibility base (an
{@code extra} catch-all map + package-private {@code @JsonAnySetter}), so unmodelled API fields
on nested value DTOs are preserved instead of silently dropped. That base class is not {@code
final} and holds a mutable {@code LinkedHashMap} field, which flips SpotBugs' mutability
heuristic for every subtype from "no public mutator -> immutable-enough, don't flag" to
"mutable -> flag every getter that returns one as a field of another class" - even though
nothing about this actually changed: {@code putExtra} stays package-private, {@code
getExtra()} still returns an unmodifiable view, and there is still no public way to mutate a
returned instance. Defensively copying on every getter call would require deep-cloning the
{@code extra} map each time, which is wasted work for a map that is (by construction) never
mutated after deserialization, so copying is not the fix here - the false positive is. Listed
per getter (not per class) to keep the exclusion exactly as narrow as the finding it suppresses.
4. EI_EXPOSE_REP on the specific getters listed below, each returning a field whose type extends
the shared {@code ApifyResource} forward-compatibility base (an {@code extra} catch-all map +
package-private {@code @JsonAnySetter}), so unmodelled API fields on nested value DTOs are
preserved instead of silently dropped. That base class is not {@code final} and holds a mutable
{@code LinkedHashMap} field, which flips SpotBugs' mutability heuristic for every subtype from
"no public mutator -> immutable-enough, don't flag" to "mutable -> flag every getter that
returns one as a field of another class" - a false positive: {@code putExtra} stays
package-private, {@code getExtra()} still returns an unmodifiable view, and there is still no
public way to mutate a returned instance. Defensively copying on every getter call would require
deep-cloning the {@code extra} map each time, which is wasted work for a map that is (by
construction) never mutated after deserialization, so copying is not the fix here - the false
positive is. Listed per getter (not per class) to keep the exclusion exactly as narrow as the
finding it suppresses.

5. EI_EXPOSE_REP2 on {@code ListPublisher}'s constructor, which stores the caller-supplied {@code
CompletableFuture<List<T>>} straight into a field. A {@code CompletableFuture} is a handle to an
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/com/apify/client/Version.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,13 @@ public final class Version {
* The semantic version of this client library (see <a href="https://semver.org/">SemVer</a>).
* Changes to the public interface other than additive ones are considered breaking changes.
*/
public static final String CLIENT_VERSION = "0.6.1";
public static final String CLIENT_VERSION = "0.6.2";

/**
* The version of the Apify OpenAPI specification this client was generated and verified against.
* Corresponds to the {@code info.version} field of the Apify OpenAPI document.
*/
public static final String API_SPEC_VERSION = "v2-2026-08-14T072928Z";
public static final String API_SPEC_VERSION = "v2-2026-08-27T071624Z";

private Version() {}
}
Loading