docs(ocp): Add since tag

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
This commit is contained in:
Daniel Kesselberg 2026-04-27 17:57:32 +02:00
parent bdeaf929f3
commit 1fb7fb7f9d
No known key found for this signature in database
GPG key ID: 4A81C29F63464E8F
25 changed files with 196 additions and 14 deletions

View file

@ -1232,8 +1232,6 @@
<code><![CDATA[getAppValue]]></code>
</DeprecatedMethod>
<InvalidArgument>
<code><![CDATA[$shareId]]></code>
<code><![CDATA[$shareId]]></code>
<code><![CDATA[$shareId]]></code>
<code><![CDATA[$shareId]]></code>
<code><![CDATA[(int)$data['id']]]></code>
@ -2002,7 +2000,6 @@
<file src="apps/provisioning_api/lib/Middleware/ProvisioningApiMiddleware.php">
<DeprecatedMethod>
<code><![CDATA[hasAnnotation]]></code>
<code><![CDATA[hasAnnotation]]></code>
</DeprecatedMethod>
<InvalidReturnType>
<code><![CDATA[Response]]></code>
@ -2331,8 +2328,6 @@
<code><![CDATA[getAppValue]]></code>
<code><![CDATA[getAppValue]]></code>
<code><![CDATA[getAppValue]]></code>
<code><![CDATA[getAppValue]]></code>
<code><![CDATA[getAppValue]]></code>
<code><![CDATA[setAppValue]]></code>
<code><![CDATA[setAppValue]]></code>
</DeprecatedMethod>
@ -4244,6 +4239,11 @@
<code><![CDATA[$tag]]></code>
</MoreSpecificImplementedParamType>
</file>
<file src="lib/private/Teams/TeamManager.php">
<UndefinedDocblockClass>
<code><![CDATA[Circle]]></code>
</UndefinedDocblockClass>
</file>
<file src="lib/private/Template/CSSResourceLocator.php">
<ParamNameMismatch>
<code><![CDATA[$style]]></code>
@ -4270,11 +4270,6 @@
<code><![CDATA[$path]]></code>
</InvalidReturnStatement>
</file>
<file src="lib/private/Teams/TeamManager.php">
<UndefinedDocblockClass>
<code><![CDATA[Circle]]></code>
</UndefinedDocblockClass>
</file>
<file src="lib/private/User/Database.php">
<FalsableReturnStatement>
<code><![CDATA[false]]></code>

View file

@ -22,12 +22,16 @@ abstract class ASince {
* @param string $since For shipped apps and server code such as core/ and lib/,
* this should be the server version. For other apps it
* should be the semantic app version.
* @since 32.0.0
*/
public function __construct(
protected string $since,
) {
}
/**
* @since 32.0.0
*/
public function getSince(): string {
return $this->since;
}

View file

@ -22,16 +22,25 @@ use Attribute;
#[Consumable(since: '32.0.0')]
#[Implementable(since: '32.0.0')]
class ExceptionalImplementable {
/**
* @since 32.0.0
*/
public function __construct(
protected string $app,
protected ?string $class = null,
) {
}
/**
* @since 32.0.0
*/
public function getApp(): string {
return $this->app;
}
/**
* @since 32.0.0
*/
public function getClass(): ?string {
return $this->class;
}

View file

@ -141,6 +141,9 @@ abstract class Controller {
. $format . '!');
}
/**
* @since 32.0.2
*/
public function isResponderRegistered(string $responder): bool {
return isset($this->responders[$responder]);
}

View file

@ -24,6 +24,7 @@ class RequestHeader {
* @param lowercase-string $name The name of the request header
* @param non-empty-string $description The description of the request header
* @param bool $indirect Allow indirect usage of the header for example in a middleware. Enabling this turns off the check which ensures that the header must be referenced in the controller method.
* @since 32.0.0
*/
public function __construct(
protected string $name,

View file

@ -26,6 +26,9 @@ use OCP\ISession;
*/
abstract class PublicShareController extends Controller {
/**
* @since 32.0.2
*/
public const DAV_AUTHENTICATED_FRONTEND = 'public_link_authenticated_frontend';
/** @var string */
@ -118,6 +121,8 @@ abstract class PublicShareController extends Controller {
/**
* Validate the token and password hash stored in session
*
* @since 32.0.2
*/
protected function validateTokenSession(string $token, string $passwordHash): bool {
$allowedTokensJSON = $this->session->get(self::DAV_AUTHENTICATED_FRONTEND) ?? '[]';
@ -131,6 +136,8 @@ abstract class PublicShareController extends Controller {
/**
* Store the token and password hash in session
*
* @since 32.0.2
*/
protected function storeTokenSession(string $token, string $passwordHash = ''): void {
$allowedTokensJSON = $this->session->get(self::DAV_AUTHENTICATED_FRONTEND) ?? '[]';

View file

@ -24,6 +24,7 @@ final class CalendarExportOptions {
* Gets the export format
*
* @return 'ical'|'jcal'|'xcal' (defaults to ical)
* @since 32.0.0
*/
public function getFormat(): string {
return $this->format;
@ -33,6 +34,7 @@ final class CalendarExportOptions {
* Sets the export format
*
* @param 'ical'|'jcal'|'xcal' $format
* @since 32.0.0
*/
public function setFormat(string $format): void {
$this->format = $format;
@ -40,6 +42,8 @@ final class CalendarExportOptions {
/**
* Gets the start of the range to export
*
* @since 32.0.0
*/
public function getRangeStart(): ?string {
return $this->rangeStart;
@ -47,6 +51,8 @@ final class CalendarExportOptions {
/**
* Sets the start of the range to export
*
* @since 32.0.0
*/
public function setRangeStart(?string $rangeStart): void {
$this->rangeStart = $rangeStart;
@ -54,6 +60,8 @@ final class CalendarExportOptions {
/**
* Gets the number of objects to export
*
* @since 32.0.0
*/
public function getRangeCount(): ?int {
return $this->rangeCount;
@ -61,6 +69,8 @@ final class CalendarExportOptions {
/**
* Sets the number of objects to export
*
* @since 32.0.0
*/
public function setRangeCount(?int $rangeCount): void {
$this->rangeCount = $rangeCount;

View file

@ -16,18 +16,42 @@ use InvalidArgumentException;
*/
final class CalendarImportOptions {
/**
* @since 32.0.0
*/
public const FORMATS = ['ical', 'jcal', 'xcal'];
/**
* @since 32.0.0
*/
public const VALIDATE_NONE = 0;
/**
* @since 32.0.0
*/
public const VALIDATE_SKIP = 1;
/**
* @since 32.0.0
*/
public const VALIDATE_FAIL = 2;
/**
* @since 32.0.0
*/
public const VALIDATE_OPTIONS = [
self::VALIDATE_NONE,
self::VALIDATE_SKIP,
self::VALIDATE_FAIL,
];
/**
* @since 32.0.0
*/
public const ERROR_CONTINUE = 0;
/**
* @since 32.0.0
*/
public const ERROR_FAIL = 1;
/**
* @since 32.0.0
*/
public const ERROR_OPTIONS = [
self::ERROR_CONTINUE,
self::ERROR_FAIL,
@ -43,6 +67,7 @@ final class CalendarImportOptions {
* Gets the import format
*
* @return 'ical'|'jcal'|'xcal' (defaults to ical)
* @since 32.0.0
*/
public function getFormat(): string {
return $this->format;
@ -52,6 +77,7 @@ final class CalendarImportOptions {
* Sets the import format
*
* @param 'ical'|'jcal'|'xcal' $value
* @since 32.0.0
*/
public function setFormat(string $value): void {
if (!in_array($value, self::FORMATS, true)) {
@ -62,6 +88,8 @@ final class CalendarImportOptions {
/**
* Gets whether to supersede existing objects
*
* @since 32.0.0
*/
public function getSupersede(): bool {
return $this->supersede;
@ -69,6 +97,8 @@ final class CalendarImportOptions {
/**
* Sets whether to supersede existing objects
*
* @since 32.0.0
*/
public function setSupersede(bool $supersede): void {
$this->supersede = $supersede;
@ -78,6 +108,7 @@ final class CalendarImportOptions {
* Gets how to handle object errors
*
* @return int 0 - continue, 1 - fail
* @since 32.0.0
*/
public function getErrors(): int {
return $this->errors;
@ -89,6 +120,7 @@ final class CalendarImportOptions {
* @param int $value 0 - continue, 1 - fail
*
* @template $value of self::ERROR_*
* @since 32.0.0
*/
public function setErrors(int $value): void {
if (!in_array($value, CalendarImportOptions::ERROR_OPTIONS, true)) {
@ -101,6 +133,7 @@ final class CalendarImportOptions {
* Gets how to handle object validation
*
* @return int 0 - no validation, 1 - validate and skip on issue, 2 - validate and fail on issue
* @since 32.0.0
*/
public function getValidate(): int {
return $this->validate;
@ -112,6 +145,7 @@ final class CalendarImportOptions {
* @param int $value 0 - no validation, 1 - validate and skip on issue, 2 - validate and fail on issue
*
* @template $value of self::VALIDATE_*
* @since 32.0.0
*/
public function setValidate(int $value): void {
if (!in_array($value, CalendarImportOptions::VALIDATE_OPTIONS, true)) {

View file

@ -17,6 +17,9 @@ use OCP\EventDispatcher\Event;
* @since 32.0.0
*/
class ContentProviderRegisterEvent extends Event {
/**
* @since 32.0.0
*/
public function __construct(
private IContentManager $contentManager,
) {

View file

@ -13,6 +13,12 @@ namespace OCP\ContextChat\Type;
* @since 32.0.0
*/
class UpdateAccessOp {
/**
* @since 32.0.0
*/
public const ALLOW = 'allow';
/**
* @since 32.0.0
*/
public const DENY = 'deny';
}

View file

@ -12,15 +12,19 @@ namespace OCP\DB\QueryBuilder;
/**
* Conflict resolution mode for "FOR UPDATE" select queries.
*
* @since 34.0.0
* @since 32.0.7
*/
enum ConflictResolutionMode {
/**
* Wait for the row to be unlocked.
*
* @since 32.0.7
*/
case Ordinary;
/**
* Skip the row if it is locked.
*
* @since 32.0.7
*/
case SkipLocked;
}

View file

@ -1113,7 +1113,7 @@ interface IQueryBuilder {
* Locks the queried rows for a subsequent update.
*
* @return $this
* @since 34.0.0
* @since 32.0.7
*/
public function forUpdate(ConflictResolutionMode $conflictResolutionMode = ConflictResolutionMode::Ordinary): self;
}

View file

@ -18,6 +18,9 @@ use OCP\Files\Config\ICachedMountInfo;
* @since 32.0.0
*/
class UserMountAddedEvent extends Event {
/**
* @since 32.0.0
*/
public function __construct(
public readonly ICachedMountInfo $mountPoint,
) {

View file

@ -18,6 +18,9 @@ use OCP\Files\Config\ICachedMountInfo;
* @since 32.0.0
*/
class UserMountRemovedEvent extends Event {
/**
* @since 32.0.0
*/
public function __construct(
public readonly ICachedMountInfo $mountPoint,
) {

View file

@ -18,6 +18,9 @@ use OCP\Files\Config\ICachedMountInfo;
* @since 32.0.0
*/
class UserMountUpdatedEvent extends Event {
/**
* @since 32.0.0
*/
public function __construct(
public readonly ICachedMountInfo $oldMountPoint,
public readonly ICachedMountInfo $newMountPoint,

View file

@ -34,18 +34,30 @@ class ConversionMimeProvider implements JsonSerializable {
) {
}
/**
* @since 31.0.0
*/
public function getFrom(): string {
return $this->from;
}
/**
* @since 31.0.0
*/
public function getTo(): string {
return $this->to;
}
/**
* @since 31.0.0
*/
public function getExtension(): string {
return $this->extension;
}
/**
* @since 31.0.0
*/
public function getDisplayName(): string {
return $this->displayName;
}

View file

@ -18,6 +18,9 @@ use OCP\EventDispatcher\Event;
* @since 32.0.7
*/
class BeforeRemotePropfindEvent extends Event {
/**
* @since 32.0.7
*/
public function __construct(
private array $properties,
) {

View file

@ -12,11 +12,14 @@ use OCP\AppFramework\Attribute\Consumable;
use OCP\EventDispatcher\Event;
/**
* @since 29.0.16
* @since 32.0.3
*/
#[Consumable(since: '29.0.16')]
#[Consumable(since: '32.0.3')]
class BucketCreatedEvent extends Event {
/**
* @since 32.0.3
*/
public function __construct(
private readonly string $bucket,
private readonly string $endpoint,
@ -26,18 +29,30 @@ class BucketCreatedEvent extends Event {
parent::__construct();
}
/**
* @since 32.0.3
*/
public function getBucket(): string {
return $this->bucket;
}
/**
* @since 32.0.3
*/
public function getEndpoint(): string {
return $this->endpoint;
}
/**
* @since 32.0.3
*/
public function getRegion(): string {
return $this->region;
}
/**
* @since 32.0.3
*/
public function getVersion(): string {
return $this->version;
}

View file

@ -11,9 +11,24 @@ namespace OCP\Files\Template;
* @since 30.0.0
*/
enum FieldType: string {
/**
* @since 30.0.0
*/
case RichText = 'rich-text';
/**
* @since 30.0.0
*/
case CheckBox = 'checkbox';
/**
* @since 30.0.0
*/
case DropDownList = 'drop-down-list';
/**
* @since 30.0.0
*/
case Picture = 'picture';
/**
* @since 30.0.0
*/
case Date = 'date';
}

View file

@ -17,18 +17,57 @@ use OCP\TaskProcessing\Exception\ValidationException;
* @since 30.0.0
*/
enum EShapeType: int {
/**
* @since 30.0.0
*/
case Number = 0;
/**
* @since 30.0.0
*/
case Text = 1;
/**
* @since 30.0.0
*/
case Image = 2;
/**
* @since 30.0.0
*/
case Audio = 3;
/**
* @since 30.0.0
*/
case Video = 4;
/**
* @since 30.0.0
*/
case File = 5;
/**
* @since 30.0.0
*/
case Enum = 6;
/**
* @since 30.0.0
*/
case ListOfNumbers = 10;
/**
* @since 30.0.0
*/
case ListOfTexts = 11;
/**
* @since 30.0.0
*/
case ListOfImages = 12;
/**
* @since 30.0.0
*/
case ListOfAudios = 13;
/**
* @since 30.0.0
*/
case ListOfVideos = 14;
/**
* @since 30.0.0
*/
case ListOfFiles = 15;
/**

View file

@ -20,6 +20,9 @@ use OCP\TaskProcessing\ShapeDescriptor;
* @since 32.0.0
*/
class ContextAgentAudioInteraction implements ITaskType {
/**
* @since 31.0.0
*/
public const ID = 'core:contextagent:audio-interaction';
private IL10N $l;

View file

@ -20,6 +20,9 @@ use OCP\TaskProcessing\ShapeDescriptor;
* @since 31.0.0
*/
class ContextAgentInteraction implements ITaskType {
/**
* @since 31.0.0
*/
public const ID = 'core:contextagent:interaction';
private IL10N $l;

View file

@ -20,6 +20,9 @@ use OCP\TaskProcessing\ShapeDescriptor;
* @since 31.0.0
*/
class TextToTextChangeTone implements ITaskType {
/**
* @since 31.0.0
*/
public const ID = 'core:text2text:changetone';
private IL10N $l;

View file

@ -20,6 +20,9 @@ use OCP\TaskProcessing\ShapeDescriptor;
* @since 31.0.0
*/
class TextToTextChatWithTools implements ITaskType {
/**
* @since 31.0.0
*/
public const ID = 'core:text2text:chatwithtools';
private IL10N $l;

View file

@ -42,6 +42,7 @@ interface ITemplate {
* This function assigns a variable in an array context. If the key already
* exists, the value will be appended. It can be accessed via
* $_[$key][$position] in the template.
* @since 32.0.0
*/
public function append(string $key, mixed $value): void;
}