diff --git a/hasl/haslcontext.h b/hasl/haslcontext.h
--- a/hasl/haslcontext.h
+++ b/hasl/haslcontext.h
@@ -95,7 +95,7 @@ G_BEGIN_DECLS
  * g_free(client_out);
  * ```
  *
- * Since: 0.1.0
+ * Since: 0.1
  */
 #define HASL_TYPE_CONTEXT (hasl_context_get_type())
 
@@ -111,7 +111,7 @@ G_DECLARE_FINAL_TYPE(HaslContext, hasl_c
  *
  * Returns: (transfer full): The new context.
  *
- * Since: 0.1.0
+ * Since: 0.1
  */
 HASL_AVAILABLE_IN_0_1
 HaslContext *hasl_context_new(void);
@@ -124,7 +124,7 @@ HaslContext *hasl_context_new(void);
  *
  * Returns: The list of allowed mechanisms.
  *
- * Since: 0.1.0
+ * Since: 0.1
  */
 HASL_AVAILABLE_IN_0_1
 const char *hasl_context_get_allowed_mechanisms(HaslContext *ctx);
@@ -138,7 +138,7 @@ const char *hasl_context_get_allowed_mec
  *
  * @allowed_mechanisms can be white space or comma separated.
  *
- * Since: 0.1.0
+ * Since: 0.1
  */
 HASL_AVAILABLE_IN_0_1
 void hasl_context_set_allowed_mechanisms(HaslContext *ctx, const char *allowed_mechanisms);
@@ -152,7 +152,7 @@ void hasl_context_set_allowed_mechanisms
  *
  * Returns: (nullable): The authzid if one is set, otherwise %NULL.
  *
- * Since: 0.1.0
+ * Since: 0.1
  */
 HASL_AVAILABLE_IN_0_1
 const char *hasl_context_get_authzid(HaslContext *ctx);
@@ -165,7 +165,7 @@ const char *hasl_context_get_authzid(Has
  * Sets the authzid of @ctx to @authzid. See [property@Hasl.Context:authzid]
  * for more information.
  *
- * Since: 0.1.0
+ * Since: 0.1
  */
 HASL_AVAILABLE_IN_0_1
 void hasl_context_set_authzid(HaslContext *ctx, const char *authzid);
@@ -178,7 +178,7 @@ void hasl_context_set_authzid(HaslContex
  *
  * Returns: (nullable): The username if set, otherwise %NULL.
  *
- * Since: 0.1.0
+ * Since: 0.1
  */
 HASL_AVAILABLE_IN_0_1
 const char *hasl_context_get_username(HaslContext *ctx);
@@ -190,7 +190,7 @@ const char *hasl_context_get_username(Ha
  *
  * Sets the username of @ctx to @username.
  *
- * Since: 0.1.0
+ * Since: 0.1
  */
 HASL_AVAILABLE_IN_0_1
 void hasl_context_set_username(HaslContext *ctx, const char *username);
@@ -203,7 +203,7 @@ void hasl_context_set_username(HaslConte
  *
  * Returns: (nullable): The password if set, otherwise %NULL.
  *
- * Since: 0.1.0
+ * Since: 0.1
  */
 HASL_AVAILABLE_IN_0_1
 const char *hasl_context_get_password(HaslContext *ctx);
@@ -215,7 +215,7 @@ const char *hasl_context_get_password(Ha
  *
  * Sets the password for @ctx to @password.
  *
- * Since: 0.1.0
+ * Since: 0.1
  */
 HASL_AVAILABLE_IN_0_1
 void hasl_context_set_password(HaslContext *ctx, const char *password);
@@ -230,7 +230,7 @@ void hasl_context_set_password(HaslConte
  *
  * Returns: %TRUE if @ctx is on a TLS connection, otherwise %FALSE.
  *
- * Since: 0.1.0
+ * Since: 0.1
  */
 HASL_AVAILABLE_IN_0_1
 gboolean hasl_context_get_tls(HaslContext *ctx);
@@ -242,7 +242,7 @@ gboolean hasl_context_get_tls(HaslContex
  *
  * Sets whether or not @ctx is working with a TLS connection to @tls.
  *
- * Since: 0.1.0
+ * Since: 0.1
  */
 HASL_AVAILABLE_IN_0_1
 void hasl_context_set_tls(HaslContext *ctx, gboolean tls);
@@ -260,7 +260,7 @@ void hasl_context_set_tls(HaslContext *c
  *
  * Returns: %TRUE if clear text methods are allowed.
  *
- * Since: 0.1.0
+ * Since: 0.1
  */
 HASL_AVAILABLE_IN_0_1
 gboolean hasl_context_get_allow_clear_text(HaslContext *ctx);
@@ -277,7 +277,7 @@ gboolean hasl_context_get_allow_clear_te
  *
  * See [property@Hasl.Context:allow-clear-text] for more information.
  *
- * Since: 0.1.0
+ * Since: 0.1
  */
 HASL_AVAILABLE_IN_0_1
 void hasl_context_set_allow_clear_text(HaslContext *ctx, gboolean allow_clear_text);
@@ -307,7 +307,7 @@ void hasl_context_set_allow_clear_text(H
  *
  * Returns: %TRUE if the mechanism was added, otherwise %FALSE.
  *
- * Since: 0.1.0
+ * Since: 0.1
  */
 HASL_AVAILABLE_IN_0_1
 gboolean hasl_context_add_mechanism(HaslContext *ctx, const char *name, GType type);
@@ -321,7 +321,7 @@ gboolean hasl_context_add_mechanism(Hasl
  *
  * Returns: (transfer full): The list of mechanisms.
  *
- * Since: 0.1.0
+ * Since: 0.1
  */
 HASL_AVAILABLE_IN_0_1
 char *hasl_context_get_supported_mechanisms(HaslContext *ctx);
@@ -338,7 +338,7 @@ char *hasl_context_get_supported_mechani
  *
  * Returns: The name of the current mechanism or %NULL.
  *
- * Since: 0.1.0
+ * Since: 0.1
  */
 HASL_AVAILABLE_IN_0_1
 const char *hasl_context_get_current_mechanism(HaslContext *ctx);
@@ -354,7 +354,7 @@ const char *hasl_context_get_current_mec
  * Returns: (nullable): The name of the next mechanism to try or %NULL if all
  *          mechanisms have been exhausted.
  *
- * Since: 0.1.0
+ * Since: 0.1
  */
 HASL_AVAILABLE_IN_0_1
 const char *hasl_context_next(HaslContext *ctx);
@@ -380,7 +380,7 @@ const char *hasl_context_next(HaslContex
  *
  * Returns: a [enum@Hasl.MechanismResult] on how to proceed.
  *
- * Since: 0.1.0
+ * Since: 0.1
  */
 HASL_AVAILABLE_IN_0_1
 HaslMechanismResult hasl_context_step(HaslContext *ctx, const guint8 *server_in, gsize server_in_length, guint8 **client_out, gsize *client_out_length, GError **error);
# HG changeset patch
# Node ID e68ce3b5fb92
# Parent  ca6442534909
diff --git a/hasl/haslcontext.c b/hasl/haslcontext.c
--- a/hasl/haslcontext.c
+++ b/hasl/haslcontext.c
@@ -171,7 +171,7 @@ hasl_context_class_init(HaslContextClass
 	 * A list of mechanisms that are allowed to be used by this context. This
 	 * list can be either white space or comma separated.
 	 *
-	 * Since: 0.1.0
+	 * Since: 0.1
 	 */
 	properties[PROP_ALLOWED_MECHANISMS] = g_param_spec_string(
 		"allowed-mechanisms", "allowed-mechanism",
@@ -187,7 +187,7 @@ hasl_context_class_init(HaslContextClass
 	 * be set to the username of the user to authenticate as, but the username
 	 * and password fields will be proper values for the administrator.
 	 *
-	 * Since: 0.1.0
+	 * Since: 0.1
 	 */
 	properties[PROP_AUTHZID] = g_param_spec_string(
 		"authzid", "authzid",
@@ -201,7 +201,7 @@ hasl_context_class_init(HaslContextClass
 	 * The username of the user that is authenticating for mechanisms that need
 	 * it.
 	 *
-	 * Since: 0.1.0
+	 * Since: 0.1
 	 */
 	properties[PROP_USERNAME] = g_param_spec_string(
 		"username", "username",
@@ -214,7 +214,7 @@ hasl_context_class_init(HaslContextClass
 	 *
 	 * The password to use for mechanisms that need it.
 	 *
-	 * Since: 0.1.0
+	 * Since: 0.1
 	 */
 	properties[PROP_PASSWORD] = g_param_spec_string(
 		"password", "password",
@@ -232,7 +232,7 @@ hasl_context_class_init(HaslContextClass
 	 * [property@Hasl.Context:allow-clear-text] to determine if mechanisms that
 	 * depend on the transport layer to secure credentials should be attempted.
 	 *
-	 * Since: 0.1.0
+	 * Since: 0.1
 	 */
 	properties[PROP_TLS] = g_param_spec_boolean(
 		"tls", "tls",
diff --git a/hasl/haslgs2header.h b/hasl/haslgs2header.h
--- a/hasl/haslgs2header.h
+++ b/hasl/haslgs2header.h
@@ -42,7 +42,7 @@ G_BEGIN_DECLS
  * https://datatracker.ietf.org/doc/html/rfc5801#section-4 for more
  * information.
  *
- * Since: 0.3.0
+ * Since: 0.3
  */
 typedef enum {
 	HaslGs2HeaderChannelBindingClientNotSupported,
@@ -61,7 +61,7 @@ typedef enum {
  * This is primarily meant to be used by mechanism implementations and should
  * not be needed for normal use cases.
  *
- * Since: 0.3.0
+ * Since: 0.3
  */
 #define HASL_TYPE_GS2_HEADER (hasl_gs2_header_get_type())
 
@@ -75,7 +75,7 @@ G_DECLARE_FINAL_TYPE(HaslGs2Header, hasl
  *
  * Returns: (transfer full): The new gs2_header.
  *
- * Since: 0.3.0
+ * Since: 0.3
  */
 HASL_AVAILABLE_IN_0_3
 HaslGs2Header *hasl_gs2_header_new(void);
@@ -89,7 +89,7 @@ HaslGs2Header *hasl_gs2_header_new(void)
  *
  * Returns: (transfer full): The serialized header.
  *
- * Since: 0.3.0
+ * Since: 0.3
  */
 HASL_AVAILABLE_IN_0_3
 char *hasl_gs2_header_to_string(HaslGs2Header *header, GError **error);
@@ -102,7 +102,7 @@ char *hasl_gs2_header_to_string(HaslGs2H
  *
  * Returns: %TRUE if this mechanism is standard, %FALSE otherwise.
  *
- * Since: 0.3.0
+ * Since: 0.3
  */
 HASL_AVAILABLE_IN_0_3
 gboolean hasl_gs2_header_get_standard_mechanism(HaslGs2Header *header);
@@ -114,7 +114,7 @@ gboolean hasl_gs2_header_get_standard_me
  *
  * Sets whether or not the mechanism is a standard GSS-API mechanism.
  *
- * Since: 0.3.0
+ * Since: 0.3
  */
 HASL_AVAILABLE_IN_0_3
 void hasl_gs2_header_set_standard_mechanism(HaslGs2Header *header, gboolean standard);
@@ -127,7 +127,7 @@ void hasl_gs2_header_set_standard_mechan
  *
  * Returns: The channel binding value.
  *
- * Since: 0.3.0
+ * Since: 0.3
  */
 HASL_AVAILABLE_IN_0_3
 HaslGs2HeaderChannelBinding hasl_gs2_header_get_channel_binding(HaslGs2Header *header);
@@ -139,7 +139,7 @@ HaslGs2HeaderChannelBinding hasl_gs2_hea
  *
  * Sets the channel binding flag for @header.
  *
- * Since: 0.3.0
+ * Since: 0.3
  */
 HASL_AVAILABLE_IN_0_3
 void hasl_gs2_header_set_channel_binding(HaslGs2Header *header, HaslGs2HeaderChannelBinding channel_binding);
@@ -152,7 +152,7 @@ void hasl_gs2_header_set_channel_binding
  *
  * Returns: (nullable): The channel binding name.
  *
- * Since: 0.3.0
+ * Since: 0.3
  */
 HASL_AVAILABLE_IN_0_3
 const char *hasl_gs2_header_get_channel_binding_name(HaslGs2Header *header);
@@ -164,7 +164,7 @@ const char *hasl_gs2_header_get_channel_
  *
  * Sets the name of the channel binding data that should be used.
  *
- * Since: 0.3.0
+ * Since: 0.3
  */
 HASL_AVAILABLE_IN_0_3
 void hasl_gs2_header_set_channel_binding_name(HaslGs2Header *header, const char *name);
@@ -177,7 +177,7 @@ void hasl_gs2_header_set_channel_binding
  *
  * Returns: (nullable): The authzid for this header.
  *
- * Since: 0.3.0
+ * Since: 0.3
  */
 HASL_AVAILABLE_IN_0_3
 const char *hasl_gs2_header_get_authzid(HaslGs2Header *header);
@@ -191,7 +191,7 @@ const char *hasl_gs2_header_get_authzid(
  * or moderator needs to authenticate as a specific user using their own
  * credentials.
  *
- * Since: 0.3.0
+ * Since: 0.3
  */
 HASL_AVAILABLE_IN_0_3
 void hasl_gs2_header_set_authzid(HaslGs2Header *header, const char *authzid);
diff --git a/hasl/haslgs2header.c b/hasl/haslgs2header.c
--- a/hasl/haslgs2header.c
+++ b/hasl/haslgs2header.c
@@ -132,7 +132,7 @@ hasl_gs2_header_class_init(HaslGs2Header
 	 *
 	 * Whether or not the mechanism is a standard GSS-API mechanism.
 	 *
-	 * Since: 0.3.0
+	 * Since: 0.3
 	 */
 	properties[PROP_STANDARD_MECHANISM] = g_param_spec_boolean(
 		"standard-mechanism", "standard-mechanism",
@@ -145,7 +145,7 @@ hasl_gs2_header_class_init(HaslGs2Header
 	 *
 	 * The channel binding flag for this header.
 	 *
-	 * Since: 0.3.0
+	 * Since: 0.3
 	 */
 	properties[PROP_CHANNEL_BINDING] = g_param_spec_enum(
 		"channel-binding", "channel-binding",
@@ -162,7 +162,7 @@ hasl_gs2_header_class_init(HaslGs2Header
 	 * If [property@Gs2Header:channel-binding] is set to ClientSupported, this
 	 * must not be %NULL.
 	 *
-	 * Since: 0.3.0
+	 * Since: 0.3
 	 */
 	properties[PROP_CHANNEL_BINDING_NAME] = g_param_spec_string(
 		"channel-binding-name", "channel-binding-name",
@@ -177,7 +177,7 @@ hasl_gs2_header_class_init(HaslGs2Header
 	 * An optional authzid to use. This is the username to authenticate as when
 	 * using admin/moderator credentials.
 	 *
-	 * Since: 0.3.0
+	 * Since: 0.3
 	 */
 	properties[PROP_AUTHZID] = g_param_spec_string(
 		"authzid", "authzid",
diff --git a/hasl/haslmechanism.h b/hasl/haslmechanism.h
--- a/hasl/haslmechanism.h
+++ b/hasl/haslmechanism.h
@@ -33,7 +33,7 @@ G_BEGIN_DECLS
  * All mechanisms need to implement [method@Mechanism.step] but may optionally
  * implement [method@Mechanism.possible].
  *
- * Since: 0.1.0
+ * Since: 0.1
  */
 
 #define HASL_TYPE_MECHANISM (hasl_mechanism_get_type())
@@ -50,7 +50,7 @@ G_DECLARE_DERIVABLE_TYPE(HaslMechanism, 
  *
  * The result states for [method@Hasl.Mechanism.step].
  *
- * Since: 0.1.0
+ * Since: 0.1
  */
 typedef enum {
 	HASL_MECHANISM_RESULT_SUCCESS = 0,
@@ -93,7 +93,7 @@ struct _HaslMechanismClass {
  *
  * Returns: A [enum@Hasl.MechanismResult] with @error possibly set.
  *
- * Since: 0.1.0
+ * Since: 0.1
  */
 HASL_AVAILABLE_IN_0_1
 HaslMechanismResult hasl_mechanism_step(HaslMechanism *mechanism, HaslContext *ctx, const guint8 *server_in, gsize server_in_length, guint8 **client_out, gsize *client_out_length, GError **error);
diff --git a/hasl/haslmechanismanonymous.h b/hasl/haslmechanismanonymous.h
--- a/hasl/haslmechanismanonymous.h
+++ b/hasl/haslmechanismanonymous.h
@@ -40,7 +40,7 @@ G_BEGIN_DECLS
  * [property@Context:allow-clear-text] to %TRUE if [property@Context:tls] is
  * %FALSE.
  *
- * Since: 0.2.0
+ * Since: 0.2
  */
 
 #define HASL_TYPE_MECHANISM_ANONYMOUS (hasl_mechanism_anonymous_get_type())
diff --git a/hasl/haslmechanismexternal.h b/hasl/haslmechanismexternal.h
--- a/hasl/haslmechanismexternal.h
+++ b/hasl/haslmechanismexternal.h
@@ -39,7 +39,7 @@ G_BEGIN_DECLS
  * so there is no dependency on [property@Context:tls] as the server could be
  * authenticating via IP addresses for example.
  *
- * Since: 0.1.0
+ * Since: 0.1
  */
 
 #define HASL_TYPE_MECHANISM_EXTERNAL (hasl_mechanism_external_get_type())
diff --git a/hasl/haslmechanismplain.h b/hasl/haslmechanismplain.h
--- a/hasl/haslmechanismplain.h
+++ b/hasl/haslmechanismplain.h
@@ -42,7 +42,7 @@ G_BEGIN_DECLS
  * [property@Context:allow-clear-text] to %TRUE if [property@Context:tls] is
  * %FALSE.
  *
- * Since: 0.1.0
+ * Since: 0.1
  */
 
 #define HASL_TYPE_MECHANISM_PLAIN (hasl_mechanism_plain_get_type())
diff --git a/hasl/haslversion.h b/hasl/haslversion.h
--- a/hasl/haslversion.h
+++ b/hasl/haslversion.h
@@ -65,7 +65,7 @@
  * A macro that evaluates to the current stable version of hasl, in a format
  * that can be used by the C pre-processor.
  *
- * Since: 0.3.0
+ * Since: 0.3
  */
 #define HASL_VERSION_CUR_STABLE \
 	(G_ENCODE_VERSION(HASL_MAJOR_VERSION, HASL_MINOR_VERSION))
@@ -106,7 +106,7 @@
  * A macro that evaluates to the 0.1 version of hasl, in a format that can be
  * used by the C pre-processor.
  *
- * Since: 0.3.0
+ * Since: 0.3
  */
 #define HASL_VERSION_0_1 (G_ENCODE_VERSION(0, 1))
 
@@ -122,7 +122,7 @@
  * A macro that evaluates to the 0.2 version of hasl, in a format that can be
  * used by the C pre-processor.
  *
- * Since: 0.3.0
+ * Since: 0.3
  */
 #define HASL_VERSION_0_2 (G_ENCODE_VERSION(0, 2))
 
@@ -138,7 +138,7 @@
  * A macro that evaluates to the 0.3 version of hasl, in a format that can be
  * used by the C pre-processor.
  *
- * Since: 0.3.0
+ * Since: 0.3
  */
 #define HASL_VERSION_0_3 (G_ENCODE_VERSION(0, 3))
 
@@ -162,7 +162,7 @@ G_BEGIN_DECLS
  * Returns: %TRUE if the version is the same or newer than the passed-in
  *          version.
  *
- * Since: 0.2.0
+ * Since: 0.2
  */
 #define HASL_CHECK_VERSION(major, minor, micro) ((major) == HASL_MAJOR_VERSION && \
                                                  ((minor) < HASL_MINOR_VERSION || \
@@ -179,7 +179,7 @@ G_BEGIN_DECLS
  * Returns: %NULL if the versions are compatible, or a string describing
  *          the version mismatch if not compatible.
  *
- * Since: 0.2.0
+ * Since: 0.2
  */
 HASL_AVAILABLE_IN_0_2
 const char *hasl_check_version(guint required_major, guint required_minor, guint required_micro);
@@ -189,7 +189,7 @@ const char *hasl_check_version(guint req
  *
  * The full version string of the running hasl.
  *
- * Since: 0.2.0
+ * Since: 0.2
  */
 HASL_VAR const char *hasl_version;
 
@@ -200,7 +200,7 @@ HASL_VAR const char *hasl_version;
  * which expands at compile time to the major version of hasl being compiled
  * against.
  *
- * Since: 0.2.0
+ * Since: 0.2
  */
 HASL_VAR const guint hasl_major_version;
 
@@ -211,7 +211,7 @@ HASL_VAR const guint hasl_major_version;
  * which expands at compile time to the minor version of hasl being compiled
  * against.
  *
- * Since: 0.2.0
+ * Since: 0.2
  */
 HASL_VAR const guint hasl_minor_version;
 
@@ -222,7 +222,7 @@ HASL_VAR const guint hasl_minor_version;
  * which expands at compile time to the micro version of hasl being compiled
  * against.
  *
- * Since: 0.2.0
+ * Since: 0.2
  */
 HASL_VAR const guint hasl_micro_version;
 
