Pekko becomes TLP (#1214)
This commit is contained in:
parent
0646754739
commit
e3410bcaa8
53 changed files with 120 additions and 131 deletions
6
.github/ISSUE_TEMPLATE/---bug-report.md
vendored
6
.github/ISSUE_TEMPLATE/---bug-report.md
vendored
|
|
@ -6,9 +6,9 @@ about: Create a report to help us improve
|
|||
|
||||
<!--
|
||||
Please report issues regarding specific projects in their respective issue trackers, e.g.:
|
||||
- Pekko HTTP: https://github.com/apache/incubator-pekko-http/issues
|
||||
- Pekko Connectors: https://github.com/apache/incubator-pekko-connectors/issues
|
||||
- Pekko Persistence Cassandra Plugin: https://github.com/apache/incubator-pekko-persistence-cassandra/issues
|
||||
- Pekko HTTP: https://github.com/apache/pekko-http/issues
|
||||
- Pekko Connectors: https://github.com/apache/pekko-connectors/issues
|
||||
- Pekko Persistence Cassandra Plugin: https://github.com/apache/pekko-persistence-cassandra/issues
|
||||
- ...
|
||||
|
||||
Please explain your issue precisely, and if possible provide a reproducer snippet (this helps resolve issues much quicker).
|
||||
|
|
|
|||
6
.github/ISSUE_TEMPLATE/---feature-request.md
vendored
6
.github/ISSUE_TEMPLATE/---feature-request.md
vendored
|
|
@ -6,9 +6,9 @@ about: Suggest an idea for this project
|
|||
|
||||
<!--
|
||||
Please report issues regarding specific projects in their respective issue trackers, e.g.:
|
||||
- Pekko HTTP: https://github.com/apache/incubator-pekko-http/issues
|
||||
- Pekko Connectors: https://github.com/apache/incubator-pekko-connectors/issues
|
||||
- Pekko Persistence Cassandra Plugin: https://github.com/apache/incubator-pekko-persistence-cassandra/issues
|
||||
- Pekko HTTP: https://github.com/apache/pekko-http/issues
|
||||
- Pekko Connectors: https://github.com/apache/pekko-connectors/issues
|
||||
- Pekko Persistence Cassandra Plugin: https://github.com/apache/pekko-persistence-cassandra/issues
|
||||
- ...
|
||||
|
||||
Please explain your use case precisely, and if possible provide an example snippet.
|
||||
|
|
|
|||
4
.github/ISSUE_TEMPLATE/--question.md
vendored
4
.github/ISSUE_TEMPLATE/--question.md
vendored
|
|
@ -1,7 +1,7 @@
|
|||
---
|
||||
name: "❓ Question"
|
||||
about: Please use https://github.com/apache/incubator-pekko/discussions for questions
|
||||
about: Please use https://github.com/apache/pekko/discussions for questions
|
||||
|
||||
---
|
||||
|
||||
Please use https://github.com/apache/incubator-pekko/discussions for questions instead of posting them to the issue tracker.
|
||||
Please use https://github.com/apache/pekko/discussions for questions instead of posting them to the issue tracker.
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ jobs:
|
|||
check-binary-compatibility:
|
||||
name: Check / Binary Compatibility
|
||||
runs-on: ubuntu-20.04
|
||||
if: github.repository == 'apache/incubator-pekko'
|
||||
if: github.repository == 'apache/pekko'
|
||||
strategy:
|
||||
fail-fast: false
|
||||
steps:
|
||||
|
|
|
|||
2
.github/workflows/generate-doc-check.yml
vendored
2
.github/workflows/generate-doc-check.yml
vendored
|
|
@ -27,7 +27,7 @@ jobs:
|
|||
generate-doc-check:
|
||||
name: Generate doc check
|
||||
runs-on: ubuntu-20.04
|
||||
if: github.repository == 'apache/incubator-pekko'
|
||||
if: github.repository == 'apache/pekko'
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
|
|
|||
2
.github/workflows/link-validator.yml
vendored
2
.github/workflows/link-validator.yml
vendored
|
|
@ -11,7 +11,7 @@ on:
|
|||
jobs:
|
||||
validate-links:
|
||||
runs-on: ubuntu-20.04
|
||||
if: github.repository == 'apache/incubator-pekko'
|
||||
if: github.repository == 'apache/pekko'
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
|
|
|||
6
.github/workflows/nightly-1.0-builds.yml
vendored
6
.github/workflows/nightly-1.0-builds.yml
vendored
|
|
@ -11,7 +11,7 @@ jobs:
|
|||
pekko-cluster-metrics-sigar:
|
||||
name: Pekko Cluster Metrics Test with Sigar
|
||||
runs-on: ubuntu-20.04
|
||||
if: github.repository == 'apache/incubator-pekko'
|
||||
if: github.repository == 'apache/pekko'
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
|
@ -52,7 +52,7 @@ jobs:
|
|||
pekko-classic-remoting-tests:
|
||||
name: Pekko Classic Remoting Tests
|
||||
runs-on: ubuntu-20.04
|
||||
if: github.repository == 'apache/incubator-pekko'
|
||||
if: github.repository == 'apache/pekko'
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
|
|
@ -97,7 +97,7 @@ jobs:
|
|||
jdk-nightly-build:
|
||||
name: JDK ${{ matrix.javaVersion }} / Scala ${{ matrix.scalaVersion }}
|
||||
runs-on: ubuntu-20.04
|
||||
if: github.repository == 'apache/incubator-pekko'
|
||||
if: github.repository == 'apache/pekko'
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
|
|
|
|||
2
.github/workflows/nightly-builds-aeron.yml
vendored
2
.github/workflows/nightly-builds-aeron.yml
vendored
|
|
@ -12,7 +12,7 @@ jobs:
|
|||
pekko-artery-aeron-tests:
|
||||
name: Pekko Artery Aeron Tests
|
||||
runs-on: ubuntu-20.04
|
||||
if: github.repository == 'apache/incubator-pekko'
|
||||
if: github.repository == 'apache/pekko'
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
|
|
|
|||
6
.github/workflows/nightly-builds.yml
vendored
6
.github/workflows/nightly-builds.yml
vendored
|
|
@ -11,7 +11,7 @@ jobs:
|
|||
pekko-cluster-metrics-sigar:
|
||||
name: Pekko Cluster Metrics Test with Sigar
|
||||
runs-on: ubuntu-20.04
|
||||
if: github.repository == 'apache/incubator-pekko'
|
||||
if: github.repository == 'apache/pekko'
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
|
@ -61,7 +61,7 @@ jobs:
|
|||
pekko-classic-remoting-tests:
|
||||
name: Pekko Classic Remoting Tests
|
||||
runs-on: ubuntu-20.04
|
||||
if: github.repository == 'apache/incubator-pekko'
|
||||
if: github.repository == 'apache/pekko'
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
|
|
@ -105,7 +105,7 @@ jobs:
|
|||
jdk-nightly-build:
|
||||
name: JDK ${{ matrix.javaVersion }} / Scala ${{ matrix.scalaVersion }}
|
||||
runs-on: ubuntu-20.04
|
||||
if: github.repository == 'apache/incubator-pekko'
|
||||
if: github.repository == 'apache/pekko'
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
|
|
|
|||
2
.github/workflows/publish-1.0-docs.yml
vendored
2
.github/workflows/publish-1.0-docs.yml
vendored
|
|
@ -29,7 +29,7 @@ jobs:
|
|||
publish:
|
||||
name: Publish 1.0 docs
|
||||
runs-on: ubuntu-20.04
|
||||
if: github.repository == 'apache/incubator-pekko'
|
||||
if: github.repository == 'apache/pekko'
|
||||
steps:
|
||||
# TODO we will need to change to use a release tag in future
|
||||
- name: Checkout
|
||||
|
|
|
|||
2
.github/workflows/publish-1.0-nightly.yml
vendored
2
.github/workflows/publish-1.0-nightly.yml
vendored
|
|
@ -31,7 +31,7 @@ jobs:
|
|||
publish-nightly:
|
||||
name: Publish 1.0 nightly
|
||||
runs-on: ubuntu-20.04
|
||||
if: github.repository == 'apache/incubator-pekko'
|
||||
if: github.repository == 'apache/pekko'
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
|
|
|||
2
.github/workflows/publish-nightly.yml
vendored
2
.github/workflows/publish-nightly.yml
vendored
|
|
@ -31,7 +31,7 @@ jobs:
|
|||
publish-nightly:
|
||||
name: Publish nightly
|
||||
runs-on: ubuntu-20.04
|
||||
if: github.repository == 'apache/incubator-pekko'
|
||||
if: github.repository == 'apache/pekko'
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
|
|
|||
2
.github/workflows/scala3-build.yml
vendored
2
.github/workflows/scala3-build.yml
vendored
|
|
@ -16,7 +16,7 @@ jobs:
|
|||
test:
|
||||
name: Test
|
||||
runs-on: ubuntu-20.04
|
||||
if: github.repository == 'apache/incubator-pekko'
|
||||
if: github.repository == 'apache/pekko'
|
||||
strategy:
|
||||
matrix:
|
||||
command:
|
||||
|
|
|
|||
2
.github/workflows/scala3-compile.yml
vendored
2
.github/workflows/scala3-compile.yml
vendored
|
|
@ -14,7 +14,7 @@ jobs:
|
|||
compile:
|
||||
name: Compile
|
||||
runs-on: ubuntu-20.04
|
||||
if: github.repository == 'apache/incubator-pekko'
|
||||
if: github.repository == 'apache/pekko'
|
||||
strategy:
|
||||
matrix:
|
||||
command:
|
||||
|
|
|
|||
2
.github/workflows/timing-tests.yml
vendored
2
.github/workflows/timing-tests.yml
vendored
|
|
@ -12,7 +12,7 @@ jobs:
|
|||
pekko-timing-sensitive-tests:
|
||||
name: Pekko Tests taggedAs TimingTest
|
||||
runs-on: ubuntu-20.04
|
||||
if: github.repository == 'apache/incubator-pekko'
|
||||
if: github.repository == 'apache/pekko'
|
||||
steps:
|
||||
|
||||
- name: Checkout
|
||||
|
|
|
|||
|
|
@ -6,4 +6,4 @@ The [Release Notes](https://pekko.apache.org/docs/pekko/current/release-notes/in
|
|||
|
||||
GitHub has a feature allowing you to compare 2 Git tags and see the PRs and overall code diff. You can take the example URL below and tweak it with the version tags that you want to compare.
|
||||
|
||||
https://github.com/apache/incubator-pekko/compare/v1.0.1...v1.0.2
|
||||
https://github.com/apache/pekko/compare/v1.0.1...v1.0.2
|
||||
|
|
|
|||
|
|
@ -24,20 +24,20 @@ Pekko uses tags to categorise issues into groups or mark their phase in developm
|
|||
In general *all issues are open for anyone working on them*. However, if you're new to the project and looking for an issue
|
||||
that will be accepted and likely is a nice one to get started you should check out the following tags:
|
||||
|
||||
- [good first issue](https://github.com/apache/incubator-pekko/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) - which identifies simple entry-level tickets, such as improvements of documentation or tests. If you're not sure how to solve a ticket but would like to work on it, feel free to ask in the issue about clarification or tips.
|
||||
- [help wanted](https://github.com/apache/incubator-pekko/labels/help%20wanted) - identifies issues that the core team will likely not have time to work on or that are nice entry-level tickets. If you're not sure how to solve a ticket but would like to work on it, feel free to ask in the issue about clarification or tips.
|
||||
- [nice-to-have (low-priority)](https://github.com/apache/incubator-pekko/labels/nice-to-have%20%28low-prio%29) - are tasks which make sense but are not a very high priority (in the face of other very high priority issues). If you see something interesting in this list, a contribution would be really wonderful!
|
||||
- [good first issue](https://github.com/apache/pekko/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22) - which identifies simple entry-level tickets, such as improvements of documentation or tests. If you're not sure how to solve a ticket but would like to work on it, feel free to ask in the issue about clarification or tips.
|
||||
- [help wanted](https://github.com/apache/pekko/labels/help%20wanted) - identifies issues that the core team will likely not have time to work on or that are nice entry-level tickets. If you're not sure how to solve a ticket but would like to work on it, feel free to ask in the issue about clarification or tips.
|
||||
- [nice-to-have (low-priority)](https://github.com/apache/pekko/labels/nice-to-have%20%28low-prio%29) - are tasks which make sense but are not a very high priority (in the face of other very high priority issues). If you see something interesting in this list, a contribution would be really wonderful!
|
||||
|
||||
If you see an issue that you would like to work on, comment on the issue so that others will know that someone is having a look.
|
||||
|
||||
These special tags indicates specific states a ticket is in:
|
||||
|
||||
- [bug](https://github.com/apache/incubator-pekko/labels/bug) indicates potential production issues. Bugs take priority in being fixed above features. The core team dedicates some days to work on bugs in each sprint. Bugs which have reproducers are also great for community contributions as they're well-isolated. Sometimes we're not as lucky to have reproducers, though, then a bugfix should also include a test reproducing the original error along with the fix.
|
||||
- [failed](https://github.com/apache/incubator-pekko/labels/failed) indicates a CI failure (for example, from a nightly build). These tickets usually include a stacktrace + link to the failed job, and we'll add a comment when we see the same problem again. Since these tickets can either indicate tests with incorrect assumptions, or legitimate issues in the production code, we look at them periodically. When the same problem isn't seen again over a period of 6 months we assume it to be a rare flaky test or a problem that might have since been fixed, so we close the issue until it pops up again.
|
||||
- [bug](https://github.com/apache/pekko/labels/bug) indicates potential production issues. Bugs take priority in being fixed above features. The core team dedicates some days to work on bugs in each sprint. Bugs which have reproducers are also great for community contributions as they're well-isolated. Sometimes we're not as lucky to have reproducers, though, then a bugfix should also include a test reproducing the original error along with the fix.
|
||||
- [failed](https://github.com/apache/pekko/labels/failed) indicates a CI failure (for example, from a nightly build). These tickets usually include a stacktrace + link to the failed job, and we'll add a comment when we see the same problem again. Since these tickets can either indicate tests with incorrect assumptions, or legitimate issues in the production code, we look at them periodically. When the same problem isn't seen again over a period of 6 months we assume it to be a rare flaky test or a problem that might have since been fixed, so we close the issue until it pops up again.
|
||||
|
||||
## Pekko contributing guidelines
|
||||
|
||||
These guidelines apply to all Apache Pekko projects, by which we currently mean both the `apache/incubator-pekko` repository, as well as any plugins or additional repositories.
|
||||
These guidelines apply to all Apache Pekko projects, by which we currently mean both the `apache/pekko` repository, as well as any plugins or additional repositories.
|
||||
|
||||
These guidelines are meant to be a living document that should be changed and adapted as needed.
|
||||
We encourage changes that make it easier to achieve our goals efficiently.
|
||||
|
|
@ -47,15 +47,15 @@ We encourage changes that make it easier to achieve our goals efficiently.
|
|||
The steps below describe how to get a patch into the main development branch (`main`).
|
||||
The steps are exactly the same for everyone involved in the project, including the core team and first-time contributors.
|
||||
|
||||
1. To avoid duplicated effort, it might be good to check the [issue tracker](https://github.com/apache/incubator-pekko/issues) and [existing pull requests](https://github.com/apache/incubator-pekko/pulls) for existing work.
|
||||
- If there is no ticket yet, feel free to [create one](https://github.com/apache/incubator-pekko/issues/new/choose) to discuss the problem and the approach you want to take to solve it.
|
||||
1. [Fork the project](https://github.com/apache/incubator-pekko/fork) on GitHub. You'll need to create a feature-branch for your work on your fork, as this way you'll be able to submit a pull request against the mainline Pekko.
|
||||
1. To avoid duplicated effort, it might be good to check the [issue tracker](https://github.com/apache/pekko/issues) and [existing pull requests](https://github.com/apache/pekko/pulls) for existing work.
|
||||
- If there is no ticket yet, feel free to [create one](https://github.com/apache/pekko/issues/new/choose) to discuss the problem and the approach you want to take to solve it.
|
||||
1. [Fork the project](https://github.com/apache/pekko/fork) on GitHub. You'll need to create a feature-branch for your work on your fork, as this way you'll be able to submit a pull request against the mainline Pekko.
|
||||
1. Create a branch on your fork and work on the feature. For example: `git checkout -b custom-headers-pekko-http`
|
||||
- Please make sure to follow the general quality guidelines (specified below) when developing your patch.
|
||||
- Please write additional tests covering your feature and adjust existing ones if needed before submitting your pull request. The `validatePullRequest` sbt task ([explained below](#the-validatepullrequest-task)) may come in handy to verify your changes are correct.
|
||||
- Use the `checkCodeStyle` sbt task to ensure your code is properly formatted and includes the proper copyright headers.
|
||||
1. Once your feature is complete, prepare the commit following our guide [Creating Commits And Writing Commit Messages](#creating-commits-and-writing-commit-messages). For example, a good commit message would be: `Adding compression support for Manifests #22222` (note the reference to the ticket it aimed to resolve).
|
||||
1. If it's a new feature or a change of behavior, document it on the [docs](https://github.com/apache/incubator-pekko/tree/main/docs). When the feature touches Scala and Java DSL, document both the Scala and Java APIs.
|
||||
1. If it's a new feature or a change of behavior, document it on the [docs](https://github.com/apache/pekko/tree/main/docs). When the feature touches Scala and Java DSL, document both the Scala and Java APIs.
|
||||
1. Now it's finally time to [submit the pull request](https://help.github.com/articles/using-pull-requests)!
|
||||
- Please make sure to include a reference to the issue you're solving *in the comment* for the Pull Request, as this will cause the PR to be linked properly with the issue. Examples of good phrases for this are: "Resolves #1234" or "Refs #1234".
|
||||
1. If you are a first time contributor, a core member must approve the CI to run for your pull request.
|
||||
|
|
@ -78,7 +78,7 @@ The TL;DR; of the above very precise workflow version is:
|
|||
6. Keep polishing it until getting the required number of approvals
|
||||
7. Profit!
|
||||
|
||||
> **Note:** Github Actions runs all the workflows for the forked project. We have filters to ensure that each action effectively runs only for the `apache/incubator-pekko` repository, but you may also want to [disable Github Actions](https://docs.github.com/en/github/administering-a-repository/managing-repository-settings/disabling-or-limiting-github-actions-for-a-repository) entirely in your fork.
|
||||
> **Note:** Github Actions runs all the workflows for the forked project. We have filters to ensure that each action effectively runs only for the `apache/pekko` repository, but you may also want to [disable Github Actions](https://docs.github.com/en/github/administering-a-repository/managing-repository-settings/disabling-or-limiting-github-actions-for-a-repository) entirely in your fork.
|
||||
|
||||
#### Backporting
|
||||
|
||||
|
|
@ -272,7 +272,7 @@ run `protobufGenerate`. The generated files are put in each project's `src/main/
|
|||
The generated files are automatically transformed to use the shaded version of protobuf.
|
||||
|
||||
Generation depends on protoc `3.11.4` being on the path. See [protobuf project](https://github.com/protocolbuffers/protobuf#protocol-compiler-installation) for installation instructions, and
|
||||
[Protobuf.scala](https://github.com/apache/incubator-pekko/blob/main/project/Protobuf.scala) for details of how to override
|
||||
[Protobuf.scala](https://github.com/apache/pekko/blob/main/project/Protobuf.scala) for details of how to override
|
||||
the settings for generation.
|
||||
|
||||
### Pull request requirements
|
||||
|
|
@ -488,7 +488,7 @@ There are a number of ways timeouts can be defined in Pekko tests. The following
|
|||
|
||||
Special care should be given to `expectNoMessage` calls, which indeed will wait for the entire timeout before continuing. Therefore a shorter timeout should be used in those, for example `200.millis` or `300.millis`. Prefer the method without timeout parameter, which will use the configured `expect-no-message-default` timeout.
|
||||
|
||||
You can read up on `remaining` and friends in [TestKit.scala](https://github.com/apache/incubator-pekko/blob/main/testkit/src/main/scala/org/apache/pekko/testkit/TestKit.scala).
|
||||
You can read up on `remaining` and friends in [TestKit.scala](https://github.com/apache/pekko/blob/main/testkit/src/main/scala/org/apache/pekko/testkit/TestKit.scala).
|
||||
|
||||
### Contributing modules
|
||||
|
||||
|
|
@ -605,5 +605,5 @@ Anyone can propose new changes to our CI workflows, and we will gladly review th
|
|||
|
||||
### Related links
|
||||
|
||||
* [Pekko Issue Tracker](https://github.com/apache/incubator-pekko/issues)
|
||||
* [Pekko Issue Tracker](https://github.com/apache/pekko/issues)
|
||||
* [Scalafmt](https://scalameta.org/scalafmt/)
|
||||
|
|
|
|||
10
DISCLAIMER
10
DISCLAIMER
|
|
@ -1,10 +0,0 @@
|
|||
Apache Pekko (incubating) is an effort undergoing incubation at the Apache
|
||||
Software Foundation (ASF), sponsored by the Apache Incubator PMC.
|
||||
|
||||
Incubation is required of all newly accepted projects until a further review
|
||||
indicates that the infrastructure, communications, and decision making process
|
||||
have stabilized in a manner consistent with other successful ASF projects.
|
||||
|
||||
While incubation status is not necessarily a reflection of the completeness
|
||||
or stability of the code, it does indicate that the project has yet to be
|
||||
fully endorsed by the ASF.
|
||||
2
LICENSE
2
LICENSE
|
|
@ -320,7 +320,7 @@ Copyright 2015 Ben Manes. All Rights Reserved.
|
|||
pekko-cluster contains VectorClock.scala which is derived from code written
|
||||
by Coda Hale <https://github.com/codahale/vlock>.
|
||||
He has agreed to allow us to use this code under an Apache 2.0 license
|
||||
<https://github.com/apache/incubator-pekko/issues/232#issuecomment-1465281263>.
|
||||
<https://github.com/apache/pekko/issues/232#issuecomment-1465281263>.
|
||||
|
||||
---------------
|
||||
|
||||
|
|
|
|||
2
NOTICE
2
NOTICE
|
|
@ -1,4 +1,4 @@
|
|||
Apache Pekko (Incubating)
|
||||
Apache Pekko
|
||||
Copyright 2022-2024 The Apache Software Foundation
|
||||
|
||||
This product includes software developed at
|
||||
|
|
|
|||
16
README.md
16
README.md
|
|
@ -1,7 +1,7 @@
|
|||
# Apache Pekko
|
||||
|
||||
[](https://github.com/apache/incubator-pekko/actions/workflows/nightly-builds.yml)
|
||||
[](https://github.com/apache/incubator-pekko/actions/workflows/nightly-builds-aeron.yml)
|
||||
[](https://github.com/apache/pekko/actions/workflows/nightly-builds.yml)
|
||||
[](https://github.com/apache/pekko/actions/workflows/nightly-builds-aeron.yml)
|
||||
|
||||
Apache Pekko is an open-source framework for building applications that are concurrent, distributed, resilient and elastic.
|
||||
Pekko uses the Actor Model to provide more intuitive high-level abstractions for concurrency.
|
||||
|
|
@ -15,7 +15,7 @@ See https://pekko.apache.org for the documentation including the API docs. The d
|
|||
|
||||
## Building from Source
|
||||
|
||||
The CI build is Linux based (Ubuntu) and most Pekko developers use Macs or Linux machines. There have been reports of issues when building with Windows ([#829](https://github.com/apache/incubator-pekko/issues/829)).
|
||||
The CI build is Linux based (Ubuntu) and most Pekko developers use Macs or Linux machines. There have been reports of issues when building with Windows ([#829](https://github.com/apache/pekko/issues/829)).
|
||||
|
||||
### Prerequisites
|
||||
- Make sure you have installed a Java Development Kit (JDK) version 11 or later.
|
||||
|
|
@ -25,7 +25,7 @@ The CI build is Linux based (Ubuntu) and most Pekko developers use Macs or Linux
|
|||
|
||||
### Running the Build
|
||||
- Open a command window and change directory to your preferred base directory
|
||||
- Use git to clone the [repo](https://github.com/apache/incubator-pekko) or download a source release from https://pekko.apache.org (and unzip or untar it, as appropriate)
|
||||
- Use git to clone the [repo](https://github.com/apache/pekko) or download a source release from https://pekko.apache.org (and unzip or untar it, as appropriate)
|
||||
- Change directory to the directory where you installed the source (you should have a file called `build.sbt` in this directory)
|
||||
- `sbt compile` compiles the main source for project default version of Scala (2.13)
|
||||
- `sbt +compile` will compile for all supported versions of Scala
|
||||
|
|
@ -54,16 +54,16 @@ The CI build is Linux based (Ubuntu) and most Pekko developers use Macs or Linux
|
|||
|
||||
There are several ways to interact with the Pekko community:
|
||||
|
||||
- [GitHub discussions](https://github.com/apache/incubator-pekko/discussions): for questions and general discussion.
|
||||
- [GitHub discussions](https://github.com/apache/pekko/discussions): for questions and general discussion.
|
||||
- [Pekko dev mailing list](https://lists.apache.org/list.html?dev@pekko.apache.org): for Pekko development discussions.
|
||||
- [Pekko users mailing list](https://lists.apache.org/list.html?users@pekko.apache.org): for Pekko user discussions.
|
||||
- [GitHub issues](https://github.com/apache/incubator-pekko/issues): for bug reports and feature requests. Please search the existing issues before creating new ones. If you are unsure whether you have found a bug, consider asking in GitHub discussions or the mailing list first.
|
||||
- [GitHub issues](https://github.com/apache/pekko/issues): for bug reports and feature requests. Please search the existing issues before creating new ones. If you are unsure whether you have found a bug, consider asking in GitHub discussions or the mailing list first.
|
||||
|
||||
## Contributing
|
||||
|
||||
Contributions are very welcome. If you have an idea on how to improve Pekko, don't hesitate to create an issue or submit a pull request.
|
||||
|
||||
See [CONTRIBUTING.md](https://github.com/apache/incubator-pekko/blob/main/CONTRIBUTING.md) for details on the development workflow and how to create your pull request.
|
||||
See [CONTRIBUTING.md](https://github.com/apache/pekko/blob/main/CONTRIBUTING.md) for details on the development workflow and how to create your pull request.
|
||||
|
||||
## Code of Conduct
|
||||
|
||||
|
|
@ -71,4 +71,4 @@ Apache Pekko is governed by the [Apache code of conduct](https://www.apache.org/
|
|||
|
||||
## License
|
||||
|
||||
Apache Pekko is available under the Apache License, version 2.0. See [LICENSE](https://github.com/apache/incubator-pekko/blob/main/LICENSE) file for details.
|
||||
Apache Pekko is available under the Apache License, version 2.0. See [LICENSE](https://github.com/apache/pekko/blob/main/LICENSE) file for details.
|
||||
|
|
|
|||
|
|
@ -1035,7 +1035,7 @@ private[pekko] class ActorSystemImpl(
|
|||
throw new IllegalStateException(
|
||||
"The calling code expected that the ActorSystem was initialized but it wasn't yet. " +
|
||||
"This is probably a bug in the ActorSystem initialization sequence often related to initialization of extensions. " +
|
||||
"Please report at https://github.com/apache/incubator-pekko/issues.")
|
||||
"Please report at https://github.com/apache/pekko/issues.")
|
||||
private lazy val _start: this.type =
|
||||
try {
|
||||
|
||||
|
|
|
|||
|
|
@ -182,7 +182,7 @@ object Helpers {
|
|||
* This includes redacting environment variable values and the username associated with the running process.
|
||||
*
|
||||
* @return redacted version of the configuration text
|
||||
* @see https://github.com/apache/incubator-pekko/pull/771
|
||||
* @see https://github.com/apache/pekko/pull/771
|
||||
* @since 1.0.2
|
||||
*/
|
||||
def renderWithRedactions(): String = {
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ scalaVersion := Dependencies.allScalaVersions.head
|
|||
|
||||
ThisBuild / versionScheme := Some(VersionScheme.SemVerSpec)
|
||||
sourceDistName := "apache-pekko"
|
||||
sourceDistIncubating := true
|
||||
sourceDistIncubating := false
|
||||
|
||||
ThisBuild / reproducibleBuildsCheckResolver := Resolver.ApacheMavenStagingRepo
|
||||
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ function downloadJmxshR5IfNecessary() {
|
|||
fi
|
||||
}
|
||||
|
||||
echo "This jmx-client/pekko-cluster tool is deprecated; use curl and https://github.com/apache/incubator-pekko-management instead." >&2
|
||||
echo "This jmx-client/pekko-cluster tool is deprecated; use curl and https://github.com/apache/pekko-management instead." >&2
|
||||
|
||||
# switch on command
|
||||
while [ $# -gt 0 ];
|
||||
|
|
|
|||
|
|
@ -14,8 +14,8 @@ To take advantage of running inside Kubernetes while forming a cluster,
|
|||
with the Kubernetes API or Kubernetes via DNS.
|
||||
|
||||
You can look at the
|
||||
@java[[Cluster with Kubernetes example project](https://github.com/apache/incubator-pekko-samples/tree/main/pekko-sample-cluster-kubernetes-java)]
|
||||
@scala[[Cluster with Kubernetes example project](https://github.com/apache/incubator-pekko-samples/tree/main/pekko-sample-cluster-kubernetes-scala)]
|
||||
@java[[Cluster with Kubernetes example project](https://github.com/apache/pekko-samples/tree/main/pekko-sample-cluster-kubernetes-java)]
|
||||
@scala[[Cluster with Kubernetes example project](https://github.com/apache/pekko-samples/tree/main/pekko-sample-cluster-kubernetes-scala)]
|
||||
to see what this looks like in practice.
|
||||
|
||||
### Resource limits
|
||||
|
|
@ -29,8 +29,8 @@ that you will need to take special care with the network configuration when usin
|
|||
described here: @ref:[Pekko behind NAT or in a Docker container](../remoting-artery.md#remote-configuration-nat-artery)
|
||||
|
||||
You can look at the
|
||||
@java[[Cluster with docker-compse example project](https://github.com/apache/incubator-pekko-samples/tree/main/pekko-sample-cluster-docker-compose-java)]
|
||||
@scala[[Cluster with docker-compose example project](https://github.com/apache/incubator-pekko-samples/tree/main/pekko-sample-cluster-docker-compose-scala)]
|
||||
@java[[Cluster with docker-compse example project](https://github.com/apache/pekko-samples/tree/main/pekko-sample-cluster-docker-compose-java)]
|
||||
@scala[[Cluster with docker-compose example project](https://github.com/apache/pekko-samples/tree/main/pekko-sample-cluster-docker-compose-scala)]
|
||||
to see what this looks like in practice.
|
||||
|
||||
For the JVM to run well in a Docker container, there are some general (not Pekko specific) parameters that might need tuning:
|
||||
|
|
|
|||
|
|
@ -253,8 +253,8 @@ An example is provided to illustrate an approach to migrate from the deprecated
|
|||
with minimal changes to your existing code. The example is intended to be copied and adjusted to your needs.
|
||||
It will not be provided as a published artifact.
|
||||
|
||||
* [pekko-samples/pekko-sample-cluster-cluster-client-grpc-scala](https://github.com/apache/incubator-pekko-samples/tree/main/pekko-sample-cluster-client-grpc-scala) implemented in Scala
|
||||
* [pekko-samples/pekko-sample-cluster-cluster-client-grpc-java](https://github.com/apache/incubator-pekko-samples/tree/main/pekko-sample-cluster-client-grpc-java) implemented in Java
|
||||
* [pekko-samples/pekko-sample-cluster-cluster-client-grpc-scala](https://github.com/apache/pekko-samples/tree/main/pekko-sample-cluster-client-grpc-scala) implemented in Scala
|
||||
* [pekko-samples/pekko-sample-cluster-cluster-client-grpc-java](https://github.com/apache/pekko-samples/tree/main/pekko-sample-cluster-client-grpc-java) implemented in Java
|
||||
|
||||
The example is still using an actor on the client-side to have an API that is very close
|
||||
to the original Cluster Client. The messages this actor can handle correspond to the
|
||||
|
|
|
|||
|
|
@ -39,6 +39,6 @@ These migration notes are designed for users migrating from Akka 2.6 to Pekko 1.
|
|||
|
||||
## Miscellaneous Notes
|
||||
|
||||
Data persisted with "akka-persistence" is usable with "pekko-persistence" and vice versa (@ref:[Persistence](../persistence.md)). There is one [issue](https://github.com/apache/incubator-pekko/pull/837) that is fixed in v1.0.3-M1 (related to persisted snapshots - for which there is a [workaround](https://github.com/scullxbones/pekko-persistence-mongo/pull/14#issuecomment-1847223850)).
|
||||
Data persisted with "akka-persistence" is usable with "pekko-persistence" and vice versa (@ref:[Persistence](../persistence.md)). There is one [issue](https://github.com/apache/pekko/pull/837) that is fixed in v1.0.3-M1 (related to persisted snapshots - for which there is a [workaround](https://github.com/scullxbones/pekko-persistence-mongo/pull/14#issuecomment-1847223850)).
|
||||
|
||||
Early releases of Apache Pekko could not be used to allow Akka and Pekko nodes to combine to form a @ref:[cluster](../cluster-usage.md). The v1.0.3-M1 @ref:[release](../release-notes/index.md) has experimental support that we would appreciate users to try out in test environments ([wiki page](https://cwiki.apache.org/confluence/display/PEKKO/Pekko+Akka+Compatibility)).
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ Plugins maintained within the Pekko organization are:
|
|||
* [pekko-persistence-cassandra]($pekko.doc.dns$/docs/pekko-persistence-cassandra/current/) (no Durable State support)
|
||||
* [pekko-persistence-jdbc]($pekko.doc.dns$/docs/pekko-persistence-jdbc/current/) (Durable State only supported with Postgres and H2)
|
||||
* [pekko-persistence-r2dbc]($pekko.doc.dns$/docs/pekko-persistence-r2dbc/current/)
|
||||
* [pekko-persistence-dynamodb](https://github.com/apache/incubator-pekko-persistence-dynamodb)
|
||||
* [pekko-persistence-dynamodb](https://github.com/apache/pekko-persistence-dynamodb)
|
||||
|
||||
Plugins can be selected either by "default" for all persistent actors,
|
||||
or "individually", when a persistent actor defines its own set of plugins.
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@ of how to run.
|
|||
|
||||
## Quickstart
|
||||
|
||||
@scala[[Quickstart Guide](https://github.com/apache/incubator-pekko-quickstart-scala.g8)]
|
||||
@java[[Quickstart Guide](https://github.com/apache/incubator-pekko-quickstart-java.g8)]
|
||||
@scala[[Quickstart Guide](https://github.com/apache/pekko-quickstart-scala.g8)]
|
||||
@java[[Quickstart Guide](https://github.com/apache/pekko-quickstart-java.g8)]
|
||||
|
||||
The *Quickstart* guide walks you through example code that introduces how to define actor systems, actors, and
|
||||
messages as well as how to use the test module and logging.
|
||||
|
|
@ -52,23 +52,23 @@ This project contains a Shopping Cart sample illustrating how to use Pekko Persi
|
|||
|
||||
## Replicated Event Sourcing
|
||||
|
||||
@java[[Multi-DC Persistence example project](https://github.com/apache/incubator-pekko-samples/tree/main/pekko-sample-persistence-dc-java)]
|
||||
@scala[[Multi-DC Persistence example project](https://github.com/apache/incubator-pekko-samples/tree/main/pekko-sample-persistence-dc-scala)]
|
||||
@java[[Multi-DC Persistence example project](https://github.com/apache/pekko-samples/tree/main/pekko-sample-persistence-dc-java)]
|
||||
@scala[[Multi-DC Persistence example project](https://github.com/apache/pekko-samples/tree/main/pekko-sample-persistence-dc-scala)]
|
||||
|
||||
Illustrates how to use @ref:[Replicated Event Sourcing](../typed/replicated-eventsourcing.md) that supports
|
||||
active-active persistent entities across data centers.
|
||||
|
||||
## Cluster with Docker
|
||||
|
||||
@java[[Cluster with docker-compose example project](https://github.com/apache/incubator-pekko-samples/tree/main/pekko-sample-cluster-docker-compose-java)]
|
||||
@scala[[Cluster with docker-compose example project](https://github.com/apache/incubator-pekko-samples/tree/main/pekko-sample-cluster-docker-compose-scala)]
|
||||
@java[[Cluster with docker-compose example project](https://github.com/apache/pekko-samples/tree/main/pekko-sample-cluster-docker-compose-java)]
|
||||
@scala[[Cluster with docker-compose example project](https://github.com/apache/pekko-samples/tree/main/pekko-sample-cluster-docker-compose-scala)]
|
||||
|
||||
Illustrates how to use Pekko Cluster with Docker compose.
|
||||
|
||||
## Cluster with Kubernetes
|
||||
|
||||
@java[[Cluster with Kubernetes example project](https://github.com/apache/incubator-pekko-samples/tree/main/pekko-sample-cluster-kubernetes-java)]
|
||||
@scala[[Cluster with Kubernetes example project](https://github.com/apache/incubator-pekko-samples/tree/main/pekko-sample-cluster-kubernetes-scala)]
|
||||
@java[[Cluster with Kubernetes example project](https://github.com/apache/pekko-samples/tree/main/pekko-sample-cluster-kubernetes-java)]
|
||||
@scala[[Cluster with Kubernetes example project](https://github.com/apache/pekko-samples/tree/main/pekko-sample-cluster-kubernetes-scala)]
|
||||
|
||||
This sample illustrates how to form a Pekko Cluster with Pekko Bootstrap when running in Kubernetes.
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ Apache Pekko is using GitHub Issues as its issue tracking system.
|
|||
|
||||
### Tickets
|
||||
|
||||
Before filing a ticket, please check the existing [Apache Pekko tickets](https://github.com/apache/incubator-pekko/issues) for earlier reports of the same
|
||||
Before filing a ticket, please check the existing [Apache Pekko tickets](https://github.com/apache/pekko/issues) for earlier reports of the same
|
||||
problem. You are very welcome to comment on existing tickets, especially if you
|
||||
have reproducible test cases that you can share.
|
||||
|
||||
|
|
@ -14,7 +14,7 @@ have reproducible test cases that you can share.
|
|||
|
||||
*Please include the versions of Scala and Apache Pekko and relevant configuration files.*
|
||||
|
||||
You can create a [new ticket](https://github.com/apache/incubator-pekko/issues/new) if you
|
||||
You can create a [new ticket](https://github.com/apache/pekko/issues/new) if you
|
||||
have registered a GitHub user account.
|
||||
|
||||
Thanks a lot for reporting bugs and suggesting features!
|
||||
|
|
@ -28,5 +28,5 @@ Thanks a lot for reporting bugs and suggesting features!
|
|||
@@@
|
||||
|
||||
Pull Requests fixing issues or adding functionality are very welcome.
|
||||
Please read [CONTRIBUTING.md](https://github.com/apache/incubator-pekko/blob/main/CONTRIBUTING.md) for
|
||||
Please read [CONTRIBUTING.md](https://github.com/apache/pekko/blob/main/CONTRIBUTING.md) for
|
||||
more information about contributing to Apache Pekko.
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
## Source Code
|
||||
|
||||
Pekko uses Git and is hosted at [Github apache/incubator-pekko](https://github.com/apache/incubator-pekko).
|
||||
Pekko uses Git and is hosted at [Github apache/pekko](https://github.com/apache/pekko).
|
||||
|
||||
## Releases Repository
|
||||
|
||||
|
|
|
|||
|
|
@ -5,31 +5,31 @@ This is milestone release and is aimed at testing some new support for users who
|
|||
|
||||
### Bug Fixes
|
||||
|
||||
* Fix StackOverflowError in ByteStringBuilder.addAll ([PR903](https://github.com/apache/incubator-pekko/pull/903))
|
||||
* Fix issue with possible int overflow in snapshot interval calculation ([PR1088](https://github.com/apache/incubator-pekko/pull/1088))
|
||||
* Fix StackOverflowError in ByteStringBuilder.addAll ([PR903](https://github.com/apache/pekko/pull/903))
|
||||
* Fix issue with possible int overflow in snapshot interval calculation ([PR1088](https://github.com/apache/pekko/pull/1088))
|
||||
|
||||
### Other Changes
|
||||
|
||||
* Change the manager name to use `pekko` in the name ([PR587](https://github.com/apache/incubator-pekko/pull/587))
|
||||
* Support interacting with Akka Remote and Cluster nodes ([PR765](https://github.com/apache/incubator-pekko/pull/765), [PR1112](https://github.com/apache/incubator-pekko/pull/1112))
|
||||
* Change the manager name to use `pekko` in the name ([PR587](https://github.com/apache/pekko/pull/587))
|
||||
* Support interacting with Akka Remote and Cluster nodes ([PR765](https://github.com/apache/pekko/pull/765), [PR1112](https://github.com/apache/pekko/pull/1112))
|
||||
* See the [wiki notes](https://cwiki.apache.org/confluence/display/PEKKO/Pekko+Akka+Compatibility) about uptaking this
|
||||
* Change noisy logging in DNS handler ([PR835](https://github.com/apache/incubator-pekko/pull/835))
|
||||
* Support reading akka-persistence snapshots ([PR837](https://github.com/apache/incubator-pekko/pull/837), [PR841](https://github.com/apache/incubator-pekko/pull/841))
|
||||
* Fix deprecation version on GraphApply ([PR877](https://github.com/apache/incubator-pekko/pull/877))
|
||||
* Reject zero and negative periodic tasks schedule ([PR887](https://github.com/apache/incubator-pekko/pull/887))
|
||||
* Change noisy logging in DNS handler ([PR835](https://github.com/apache/pekko/pull/835))
|
||||
* Support reading akka-persistence snapshots ([PR837](https://github.com/apache/pekko/pull/837), [PR841](https://github.com/apache/pekko/pull/841))
|
||||
* Fix deprecation version on GraphApply ([PR877](https://github.com/apache/pekko/pull/877))
|
||||
* Reject zero and negative periodic tasks schedule ([PR887](https://github.com/apache/pekko/pull/887))
|
||||
|
||||
## 1.0.2
|
||||
A minor bug fix release.
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* Do not render env variables when logging configs. This relates to the optional config `pekko.log-config-on-start`. We do not recommend logging configs in production environments. ([PR771](https://github.com/apache/incubator-pekko/pull/771))
|
||||
* Allow `pekko-actor-testkit-typed` to work with slf4j-api v2.0.x. ([PR784](https://github.com/apache/incubator-pekko/pull/784))
|
||||
* Do not render env variables when logging configs. This relates to the optional config `pekko.log-config-on-start`. We do not recommend logging configs in production environments. ([PR771](https://github.com/apache/pekko/pull/771))
|
||||
* Allow `pekko-actor-testkit-typed` to work with slf4j-api v2.0.x. ([PR784](https://github.com/apache/pekko/pull/784))
|
||||
|
||||
### Additional Changes
|
||||
|
||||
* Deprecate statefulMapConcat ([#601](https://github.com/apache/incubator-pekko/issues/601))
|
||||
* Add section on using Scala 3 Union types to eliminate msg adapters ([PR741](https://github.com/apache/incubator-pekko/pull/741))
|
||||
* Deprecate statefulMapConcat ([#601](https://github.com/apache/pekko/issues/601))
|
||||
* Add section on using Scala 3 Union types to eliminate msg adapters ([PR741](https://github.com/apache/pekko/pull/741))
|
||||
|
||||
## 1.0.1
|
||||
A minor bug fix release. The class renaming described below (`#491`) is not expected to affect anyone
|
||||
|
|
@ -38,7 +38,7 @@ release when it becomes available.
|
|||
|
||||
### Bug Fixes
|
||||
|
||||
* Issue with class name of package private object `PekkoPduProtobufCodec$` ([#491](https://github.com/apache/incubator-pekko/issues/491))
|
||||
* Issue with class name of package private object `PekkoPduProtobufCodec$` ([#491](https://github.com/apache/pekko/issues/491))
|
||||
|
||||
## 1.0.0
|
||||
Apache Pekko 1.0.0 is based on Akka 2.6.20. Pekko came about as a result of Lightbend's decision to make future
|
||||
|
|
@ -59,20 +59,20 @@ properly acknowledged, please get in touch.
|
|||
### Bug Fixes
|
||||
We haven't had to fix many bugs that were in Akka 2.6.20.
|
||||
|
||||
* Optimized JsonFraming breaks existing functionality in v2.6.20 ([PR44](https://github.com/apache/incubator-pekko/pull/44))
|
||||
* Use random IDs in Async DNS Resolver. This change was made due to [CVE-2023-31442](https://akka.io/security/akka-async-dns-2023-31442.html) in Akka. ([#384](https://github.com/apache/incubator-pekko/issues/384))
|
||||
* Include critical TLS fix from Akka 2.6.21 ([#442](https://github.com/apache/incubator-pekko/issues/442))
|
||||
* Optimized JsonFraming breaks existing functionality in v2.6.20 ([PR44](https://github.com/apache/pekko/pull/44))
|
||||
* Use random IDs in Async DNS Resolver. This change was made due to [CVE-2023-31442](https://akka.io/security/akka-async-dns-2023-31442.html) in Akka. ([#384](https://github.com/apache/pekko/issues/384))
|
||||
* Include critical TLS fix from Akka 2.6.21 ([#442](https://github.com/apache/pekko/issues/442))
|
||||
|
||||
### Dependency Upgrades
|
||||
We have tried to limit the changes to third party dependencies that are used in Pekko 1.0.0. These are some exceptions:
|
||||
|
||||
* Scala 3.3.0 is the minimum Scala 3 version supported. Scala 2.12 and 2.13 are still supported.
|
||||
* Jackson 2.14.3 ([#7](https://github.com/apache/incubator-pekko/issues/7))
|
||||
* protobuf-java 3.16.3 ([PR390](https://github.com/apache/incubator-pekko/pull/390))
|
||||
* Jackson 2.14.3 ([#7](https://github.com/apache/pekko/issues/7))
|
||||
* protobuf-java 3.16.3 ([PR390](https://github.com/apache/pekko/pull/390))
|
||||
* reactive-streams 1.0.4
|
||||
* scala-java8-compat 1.0.2 - it is now only a dependency if you are using Scala 2.12. It is no longer used by Pekko when Scala 2.13 or 3 are used.
|
||||
* ssl-config 0.6.1 ([PR394](https://github.com/apache/incubator-pekko/pull/394))
|
||||
* ssl-config 0.6.1 ([PR394](https://github.com/apache/pekko/pull/394))
|
||||
* scalatest 3.2.14. Pekko users who have existing tests based on Akka Testkit may need to migrate their tests due to the scalatest upgrade. The [scalatest 3.2 release notes](https://www.scalatest.org/release_notes/3.2.0) have a detailed description of the changes needed.
|
||||
|
||||
### Known Issues
|
||||
* The Pekko tests run well in our GitHub Actions continuous integration setup but can be hard to get running locally. We are adding improvements and they can be tracked among our GitHub issues using the [make-tests-easier-to-run](https://github.com/apache/incubator-pekko/issues?q=label%3Amake-tests-easier-to-run+) label).
|
||||
* The Pekko tests run well in our GitHub Actions continuous integration setup but can be hard to get running locally. We are adding improvements and they can be tracked among our GitHub issues using the [make-tests-easier-to-run](https://github.com/apache/pekko/issues?q=label%3Amake-tests-easier-to-run+) label).
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ efficiently.
|
|||
## How to get started
|
||||
|
||||
If this is your first experience with Pekko, we recommend that you start by
|
||||
running a simple Hello World project. See the @scala[[Quickstart Guide](https://github.com/apache/incubator-pekko-quickstart-scala.g8)] @java[[Quickstart Guide](https://github.com/apache/incubator-pekko-quickstart-java.g8)] for
|
||||
running a simple Hello World project. See the @scala[[Quickstart Guide](https://github.com/apache/pekko-quickstart-scala.g8)] @java[[Quickstart Guide](https://github.com/apache/pekko-quickstart-java.g8)] for
|
||||
instructions on downloading and running the Hello World example. The *Quickstart* guide walks you through example code that introduces how to define actor systems, actors, and messages as well as how to use the test module and logging. Within 30 minutes, you should be able to run the Hello World example and learn how it is constructed.
|
||||
|
||||
This *Getting Started* guide provides the next level of information. It covers why the actor model fits the needs of modern distributed systems and includes a tutorial that will help further your knowledge of Pekko. Topics include:
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ when starting to build a Pekko system. You might wonder: Which should be the fir
|
|||
Fortunately — unlike with prose — established best practices can guide us through these initial steps. In the remainder of this guide, we examine the core logic of a simple Pekko application to introduce you to actors and show you how to formulate solutions with them. The example demonstrates common patterns that will help you kickstart your Pekko projects.
|
||||
|
||||
## Prerequisites
|
||||
You should have already followed the instructions in the @scala[[Pekko Quickstart with Scala guide](https://github.com/apache/incubator-pekko-quickstart-scala.g8)] @java[[Pekko Quickstart with Java guide](https://github.com/apache/incubator-pekko-quickstart-java.g8)] to download and run the Hello World example. You will use this as a seed project and add the functionality described in this tutorial.
|
||||
You should have already followed the instructions in the @scala[[Pekko Quickstart with Scala guide](https://github.com/apache/pekko-quickstart-scala.g8)] @java[[Pekko Quickstart with Java guide](https://github.com/apache/pekko-quickstart-java.g8)] to download and run the Hello World example. You will use this as a seed project and add the functionality described in this tutorial.
|
||||
|
||||
@@@ note
|
||||
Both the Java and Scala DSLs of Pekko modules bundled in the same JAR. For a smooth development experience,
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ An actor in Pekko always belongs to a parent. You create an actor by calling @a
|
|||
_parent_ of the newly created _child_ actor. You might ask then, who is the parent of the _first_ actor you create?
|
||||
|
||||
As illustrated below, all actors have a common parent, the user guardian, which is defined and created when you start the @apidoc[actor.typed.ActorSystem].
|
||||
As we covered in the @scala[[Quickstart Guide](https://github.com/apache/incubator-pekko-quickstart-scala.g8)]@java[[Quickstart Guide](https://github.com/apache/incubator-pekko-quickstart-java.g8)], creation of an actor returns a reference that is a valid URL. So, for example, if we create an actor named `someActor` from the user guardian with `context.spawn(someBehavior, "someActor")`, its reference will include the path `/user/someActor`.
|
||||
As we covered in the @scala[[Quickstart Guide](https://github.com/apache/pekko-quickstart-scala.g8)]@java[[Quickstart Guide](https://github.com/apache/pekko-quickstart-java.g8)], creation of an actor returns a reference that is a valid URL. So, for example, if we create an actor named `someActor` from the user guardian with `context.spawn(someBehavior, "someActor")`, its reference will include the path `/user/someActor`.
|
||||
|
||||

|
||||
|
||||
|
|
|
|||
|
|
@ -671,7 +671,7 @@ reference documentation of the chosen plugin.
|
|||
is an example project that can be downloaded, and with instructions of how to run.
|
||||
This project contains a Shopping Cart sample illustrating how to use Pekko Persistence.
|
||||
|
||||
@java[[Multi-DC Persistence example project](https://github.com/apache/incubator-pekko-samples/tree/main/pekko-sample-persistence-dc-java)]
|
||||
@scala[[Multi-DC Persistence example project](https://github.com/apache/incubator-pekko-samples/tree/main/pekko-sample-persistence-dc-scala)]
|
||||
@java[[Multi-DC Persistence example project](https://github.com/apache/pekko-samples/tree/main/pekko-sample-persistence-dc-java)]
|
||||
@scala[[Multi-DC Persistence example project](https://github.com/apache/pekko-samples/tree/main/pekko-sample-persistence-dc-scala)]
|
||||
illustrates how to use @ref:[Replicated Event Sourcing](replicated-eventsourcing.md) that supports
|
||||
active-active persistent entities across data centers.
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Apache Pekko (Incubating)
|
||||
Apache Pekko
|
||||
Copyright 2022-2024 The Apache Software Foundation
|
||||
|
||||
This product includes software developed at
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Apache Pekko (Incubating)
|
||||
Apache Pekko
|
||||
Copyright 2022-2024 The Apache Software Foundation
|
||||
|
||||
This product includes software developed at
|
||||
|
|
|
|||
|
|
@ -205,4 +205,4 @@
|
|||
pekko-cluster contains VectorClock.scala which is derived from code written
|
||||
by Coda Hale <https://github.com/codahale/vlock>.
|
||||
He has agreed to allow us to use this code under an Apache 2.0 license
|
||||
<https://github.com/apache/incubator-pekko/issues/232#issuecomment-1465281263>.
|
||||
<https://github.com/apache/pekko/issues/232#issuecomment-1465281263>.
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
Apache Pekko (Incubating)
|
||||
Apache Pekko
|
||||
Copyright 2022-2024 The Apache Software Foundation
|
||||
|
||||
This product includes software developed at
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ class SnapshotSerializerSpec extends PekkoSpec {
|
|||
"deserialize akka snapshots" in {
|
||||
val system = ActorSystem()
|
||||
val serialization = SerializationExtension(system)
|
||||
// https://github.com/apache/incubator-pekko/pull/837#issuecomment-1847320309
|
||||
// https://github.com/apache/pekko/pull/837#issuecomment-1847320309
|
||||
val data =
|
||||
"PAAAAAcAAABha2thLnBlcnNpc3RlbmNlLmZzbS5QZXJzaXN0ZW50RlNNJFBlcnNpc3RlbnRGU01TbmFwc2hvdAoPdGVzdC1pZGVudGlmaWVyEg0IFBIJdGVzdC1kYXRh"
|
||||
val bytes = Base64.getDecoder.decode(data)
|
||||
|
|
|
|||
|
|
@ -29,8 +29,7 @@ object AddMetaInfLicenseFiles extends AutoPlugin {
|
|||
|
||||
override lazy val projectSettings = Seq(
|
||||
apacheSonatypeLicenseFile := baseDir.value / "legal" / "StandardLicense.txt",
|
||||
apacheSonatypeNoticeFile := baseDir.value / "legal" / "PekkoNotice.txt",
|
||||
apacheSonatypeDisclaimerFile := Some(baseDir.value / "DISCLAIMER"))
|
||||
apacheSonatypeNoticeFile := baseDir.value / "legal" / "PekkoNotice.txt")
|
||||
|
||||
/**
|
||||
* Settings specific for Pekko actor subproject which requires a different license file.
|
||||
|
|
|
|||
|
|
@ -25,6 +25,6 @@ object GitHub {
|
|||
|
||||
def url(v: String): String = {
|
||||
val branch = if (v.endsWith("SNAPSHOT")) "main" else "v" + v
|
||||
"https://github.com/apache/incubator-pekko/tree/" + branch
|
||||
"https://github.com/apache/pekko/tree/" + branch
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ object Paradox {
|
|||
"fault-tolerance-sample.html"))
|
||||
|
||||
lazy val themeSettings = Seq(
|
||||
pekkoParadoxGithub := Some("https://github.com/apache/incubator-pekko"))
|
||||
pekkoParadoxGithub := Some("https://github.com/apache/pekko"))
|
||||
|
||||
// FIXME https://github.com/lightbend/paradox/issues/350
|
||||
// Exclusions from direct compilation for includes dirs/files not belonging in a TOC
|
||||
|
|
|
|||
|
|
@ -182,9 +182,9 @@ object PekkoBuild {
|
|||
description := "Apache Pekko is a toolkit for building highly concurrent, distributed, and resilient message-driven applications for Java and Scala.",
|
||||
scmInfo := Some(
|
||||
ScmInfo(
|
||||
url("https://github.com/apache/incubator-pekko"),
|
||||
"scm:git:https://github.com/apache/incubator-pekko.git",
|
||||
"scm:git:git@github.com:apache/incubator-pekko.git")),
|
||||
url("https://github.com/apache/pekko"),
|
||||
"scm:git:https://github.com/apache/pekko.git",
|
||||
"scm:git:git@github.com:apache/pekko.git")),
|
||||
apiURL := Some(url(s"https://pekko.apache.org/api/pekko/${version.value}")),
|
||||
initialCommands :=
|
||||
"""|import language.postfixOps
|
||||
|
|
@ -312,7 +312,7 @@ object PekkoBuild {
|
|||
UsefulTask("docs/paradoxBrowse",
|
||||
"Browse the generated documentation (license report will be generate on CI or Publish)"),
|
||||
UsefulTask("tips:", "prefix commands with `+` to run against cross Scala versions."),
|
||||
UsefulTask("Contributing guide:", "https://github.com/apache/incubator-pekko/blob/main/CONTRIBUTING.md")).map(
|
||||
UsefulTask("Contributing guide:", "https://github.com/apache/pekko/blob/main/CONTRIBUTING.md")).map(
|
||||
_.noAlias))
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ object Publish extends AutoPlugin {
|
|||
"pekko-contributors",
|
||||
"Apache Pekko Contributors",
|
||||
"dev@pekko.apache.org",
|
||||
url("https://github.com/apache/incubator-pekko/graphs/contributors"))))
|
||||
url("https://github.com/apache/pekko/graphs/contributors"))))
|
||||
|
||||
override lazy val buildSettings = Seq(
|
||||
dynverSonatypeSnapshots := true)
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ object PekkoValidatePullRequest extends AutoPlugin {
|
|||
}.fold(FileFilter.nothing)(_ || _)
|
||||
},
|
||||
validatePullRequestBuildAll / excludeFilter := PathGlobFilter("project/MiMa.scala"),
|
||||
prValidatorGithubRepository := Some("apache/incubator-pekko"),
|
||||
prValidatorGithubRepository := Some("apache/pekko"),
|
||||
prValidatorTargetBranch := "origin/main")
|
||||
|
||||
override lazy val projectSettings = inConfig(ValidatePR)(Defaults.testTasks) ++ Seq(
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ project-info {
|
|||
new-tab: false
|
||||
}
|
||||
issues: {
|
||||
url: "https://github.com/apache/incubator-pekko/issues"
|
||||
url: "https://github.com/apache/pekko/issues"
|
||||
text: "Github issues"
|
||||
}
|
||||
release-notes: {
|
||||
|
|
@ -29,8 +29,8 @@ project-info {
|
|||
url: "https://lists.apache.org/list.html?dev@pekko.apache.org"
|
||||
}
|
||||
{
|
||||
text: "apache/incubator-pekko discussion"
|
||||
url: "https://github.com/apache/incubator-pekko/discussions"
|
||||
text: "apache/pekko discussion"
|
||||
url: "https://github.com/apache/pekko/discussions"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
# rename PekkoPduProtobufCodec$ - https://github.com/apache/incubator-pekko/issues/491
|
||||
# rename PekkoPduProtobufCodec$ - https://github.com/apache/pekko/issues/491
|
||||
ProblemFilters.exclude[StaticVirtualMemberProblem]("org.apache.pekko.remote.transport.PekkoPduProtobufCodec.decodeMessage")
|
||||
ProblemFilters.exclude[StaticVirtualMemberProblem]("org.apache.pekko.remote.transport.PekkoPduProtobufCodec.decodePdu")
|
||||
ProblemFilters.exclude[StaticVirtualMemberProblem]("org.apache.pekko.remote.transport.PekkoPduProtobufCodec.constructHeartbeat")
|
||||
|
|
|
|||
|
|
@ -100,7 +100,7 @@ trait SourceRef[T] {
|
|||
final case class TargetRefNotInitializedYetException()
|
||||
extends IllegalStateException(
|
||||
"Internal remote target actor ref not yet resolved, yet attempted to send messages to it. " +
|
||||
"This should not happen due to proper flow-control, please open a ticket on the issue tracker: https://github.com/apache/incubator-pekko")
|
||||
"This should not happen due to proper flow-control, please open a ticket on the issue tracker: https://github.com/apache/pekko")
|
||||
|
||||
final case class StreamRefSubscriptionTimeoutException(msg: String) extends IllegalStateException(msg)
|
||||
|
||||
|
|
|
|||
|
|
@ -420,7 +420,7 @@ import pekko.util.ByteString
|
|||
case OK =>
|
||||
result.getHandshakeStatus match {
|
||||
case NEED_WRAP =>
|
||||
// https://github.com/apache/incubator-pekko/issues/442
|
||||
// https://github.com/apache/pekko/issues/442
|
||||
// A second workaround for an infinite loop we have not been able to reproduce/isolate,
|
||||
// if you see this, and can reproduce consistently, please report back to the Apache Pekko team
|
||||
// with a reproducer or details about the client causing it
|
||||
|
|
@ -429,7 +429,7 @@ import pekko.util.ByteString
|
|||
throw new IllegalStateException(
|
||||
s"Stuck in unwrap loop, bailing out, last handshake status [$lastHandshakeStatus], " +
|
||||
s"remaining=${transportInBuffer.remaining}, out=${userOutBuffer.position()}, " +
|
||||
"(https://github.com/apache/incubator-pekko/issues/442)")
|
||||
"(https://github.com/apache/pekko/issues/442)")
|
||||
}
|
||||
transportInChoppingBlock.putBack(transportInBuffer)
|
||||
case FINISHED =>
|
||||
|
|
|
|||
|
|
@ -122,7 +122,7 @@ private[stream] final class SinkRefStageImpl[In] private[pekko] (val initialPart
|
|||
observeAndValidateSender(
|
||||
ref,
|
||||
"Illegal initialPartnerRef! This may be a bug, please report your " +
|
||||
"usage and complete stack trace on the issue tracker: https://github.com/apache/incubator-pekko")
|
||||
"usage and complete stack trace on the issue tracker: https://github.com/apache/pekko")
|
||||
tryPull()
|
||||
case _ =>
|
||||
log.debug(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue