<commit_before>// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements.  See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership.  The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License.  You may obtain a copy of the License at
// .
//   http://www.apache.org/licenses/LICENSE-2.0
// .
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied.  See the License for the
// specific language governing permissions and limitations
// under the License.

include::temp-properties-files-for-site/attributes.adoc[]

== Apache Tamaya -- Release Guide

Performing a release requires several steps. This document describes each step, so everybody in the committer's
team should be able to perform the release procedure.


=== Tell the others you would proceed with the release procedure

[listing,text]
----------------------------------------
    first steps for the next release

    hi @ all,

    if there are no objections, i'll start with the first steps for the next release (review, documentation,...).
    it would be great to start with the release procedure next week.

    regards,
    [name]
----------------------------------------


=== Check everything is ready

* Check the jenkins builds.
* Ensure all JIRA-tickets targeting the release are resolved. If not, get in contact with the ticket
  owner/assignee to check
  ** if the ticket can be postponed for the next release
  ** how long it takes to resolve it and if one can help.


=== Prepare the release

* Create release notes and commit them to `tamaya/readme/` (format `ReleaseNotes-[version].html`)
* Create a release branch in git and switch to this branch:

[listing,text]
----------------------------------------
    git checkout -b vote-tamaya-[release version]

    export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=200m"
    mvn release:prepare -DdryRun=true -DperformRelease=true

    //copy prepared workspace (to continue faster if an upload fails in the next step)
----------------------------------------

* If something fails you may switch to the master branch, fix whatever is needed and rebase your release branch to
  accomodate the latest changes done.
* On success you can check the release packages from `dist/target`.
* If everything looks good you can proceed with the release:

[listing,text]
----------------------------------------
    export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=200m"
    mvn release:prepare -DperformRelease=true
    mvn release:perform -DperformRelease=true
----------------------------------------

* check the created commits including user-name and email
* login to https://repository.apache.org/ and go to "Staging Repositories"
* check the contents of the newly created tamaya staging repository
* _close_ the repository to let Nexus do its validations
* On success:
* push the release-branch to the git repo

[listing,text]
----------------------------------------
git push<commit_msg>Updated rel guide<commit_after>// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements.  See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership.  The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License.  You may obtain a copy of the License at
// .
//   http://www.apache.org/licenses/LICENSE-2.0
// .
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied.  See the License for the
// specific language governing permissions and limitations
// under the License.

include::temp-properties-files-for-site/attributes.adoc[]

== Apache Tamaya -- Release Guide

Performing a release requires several steps. This document describes each step, so everybody in the committer's
team should be able to perform the release procedure.


=== Tell the others you would proceed with the release procedure

[listing,text]
----------------------------------------
    first steps for the next release

    hi @ all,

    if there are no objections, i'll start with the first steps for the next release (review, documentation,...).
    it would be great to start with the release procedure next week.

    regards,
    [name]
----------------------------------------


=== Check everything is ready

* Check the jenkins builds.
* Ensure all JIRA-tickets targeting the release are resolved. If not, get in contact with the ticket
  owner/assignee to check
  ** if the ticket can be postponed for the next release
  ** how long it takes to resolve it and if one can help.


=== Prepare the release

* Create release notes and commit them to `tamaya/readme/` (format `ReleaseNotes-[version].html`)
* Create a release branch in git and switch to this branch:

[listing,text]
----------------------------------------
    git checkout -b vote-tamaya-[release version]

    export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=200m"
    mvn release:prepare -DdryRun=true -DperformRelease=true

    // optionally pass GPG params for signing with: -Darguments="-Dgpg.keyname=1336D3E6 -Dgpg.passphrase=<PASSWORD>"

    //copy prepared workspace (to continue faster if an upload fails in the next step)
----------------------------------------

* If something fails you may switch to the master branch, fix whatever is needed and rebase your release branch to
  accomodate the latest changes done.
* On success you can check the release packages from `dist/target`.
* If everything looks good you can proceed with the release:

[listing,text]
----------------------------------------
    export MAVEN_OPTS="-Xmx512m -XX:MaxPermSize=200m"
    mvn release:prepare -DperformRelease=true
    mvn release:perform -DperformRelease=true
----------------------------------------

* check the created commits including user-name and email
* login to https://repository.apache.org/ and go to "Staging Repositories"
* check the contents of the newly created tamaya staging repository
* _close_ the repository to let Nexus do its validations
* On success:
* push the release-branch to the git repo

[listing,text]
----------------------------------------
git push
{'fraction_non_alphanumeric': 0.1489777510523151, 'fraction_numerical': 0.005712567648827421, 'mean_word_length': 2.6375068343357024, 'pattern_counts': {'":': 0, '<': 4, '<?xml version=': 0, '>': 4, 'https://': 2, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7303593', 'n_tokens_mistral': 1676, 'n_tokens_neox': 1594, 'n_words': 800}