Skip to content

Commit

Permalink
Release 0.2.0 (#92)
Browse files Browse the repository at this point in the history
Release version 0.2.0
  • Loading branch information
AntonReinhard authored Aug 6, 2024
2 parents 9e9e96d + 6d689b3 commit 69053b6
Show file tree
Hide file tree
Showing 32 changed files with 769 additions and 974 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ on:
branches:
- master
- dev
tags: '*'
tags: "*"
pull_request:

jobs:
Expand All @@ -18,13 +18,10 @@ jobs:
- uses: actions/checkout@v4
- uses: julia-actions/setup-julia@v1
with:
version: '1.9'
- name: Add custom registry
run: |
julia --project=docs/ -e 'import Pkg; Pkg.Registry.add(Pkg.RegistrySpec(url="https://github.com/QEDjl-project/registry.git"));'
julia --project=docs/ -e 'import Pkg; Pkg.Registry.add(Pkg.RegistrySpec(url="https://github.com/JuliaRegistries/General"));'
version: "1.10"
- name: Install dependencies
run: julia --project=docs/ -e 'using Pkg; Pkg.develop(PackageSpec(path=pwd())); Pkg.instantiate()'
run: |
julia --project=docs/ -e 'using Pkg; Pkg.develop(PackageSpec(path=pwd())); Pkg.instantiate()'
- name: Build and deploy
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # If authenticating with GitHub Actions token
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/CompatHelper.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
- name: Install Julia, but only if it is not already available in the PATH
uses: julia-actions/setup-julia@v1
with:
version: '1'
version: '1.10'
arch: ${{ runner.arch }}
if: steps.julia_in_path.outcome != 'success'
- name: "Add the General registry via Git"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/formatter.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
- name: install Julia
uses: julia-actions/setup-julia@v1
with:
version: 1.9
version: 1.10
- name: Install Julia requirements
run: julia --project=${GITHUB_WORKSPACE}/.formatting -e 'import Pkg; Pkg.instantiate()'
- name: Check code style
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/docs/build/
docs/build/

# File generated by Pkg, the package manager, based on a corresponding Project.toml
# It records a fixed state of all packages used by the project. As such, it should not be
Expand Down
10 changes: 4 additions & 6 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@ stages:
script:
- apt update && apt install -y git
- git clone --depth 1 -b dev https://github.com/QEDjl-project/QED.jl.git /QEDjl
- julia --project=. -e 'import Pkg; Pkg.Registry.add(Pkg.RegistrySpec(url="https://github.com/QEDjl-project/registry.git"));'
- julia --project=. -e 'import Pkg; Pkg.Registry.add(Pkg.RegistrySpec(url="https://github.com/JuliaRegistries/General"));'
- >
if [[ $CI_COMMIT_BRANCH == "main" || $CI_COMMIT_REF_NAME == "main" || $CI_COMMIT_BRANCH == "dev" || $CI_COMMIT_REF_NAME == "dev" ]]; then
# set name of the commit message from CI_COMMIT_MESSAGE to NO_MESSAGE, that the script does not read accidentally custom packages from the commit message of a merge commit
Expand All @@ -28,7 +26,7 @@ unit_tests_releases:
extends: .untit_test_template
parallel:
matrix:
- JULIA_VERSION: ["1.6", "1.7", "1.8", "1.9"]
- JULIA_VERSION: ["1.6", "1.7", "1.8", "1.9", "1.10", "rc"]
image: julia:$JULIA_VERSION

unit_tests_nightly:
Expand Down Expand Up @@ -63,7 +61,7 @@ unit_tests_nightly:
allow_failure: true

generate_integration_tests:
image: julia:1.9
image: julia:1.10
stage: generate_integration_test
script:
# extract package name
Expand Down Expand Up @@ -102,8 +100,8 @@ run_integration_tests:
job: generate_integration_tests
strategy: depend

verify-unit-test-deps_julia1.9:
image: julia:1.9
verify-unit-test-deps_julia1.10:
image: julia:1.10
stage: verify-unit-test-deps
script:
- apt update && apt install -y git
Expand Down
53 changes: 49 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,50 @@
# Changelog

## Version 0.2.0

[diff since 0.1.0](https://github.com/QEDjl-project/QEDprocesses.jl/compare/v0.1.0...release-0.2.0)

This release is part of the restructuring processes of QED.jl (see https://github.com/QEDjl-project/QED.jl/issues/35 for details).
It is a breaking release, indicated by the bumped minor version because we don't have a major version for this yet.

### Breaking changes

This release moves the general purpose interfaces to [`QEDbase.jl`](https://github.com/QEDjl-project/QEDbase.jl) and the core functionality to the new package [`QEDcore.jl`](https://github.com/QEDjl-project/QEDcore.jl).
The purpose of this package is to provide implementations for specific models and processes, currently the 1-photon-Compton in perturbative QED.

### New features

- [#28](https://github.com/QEDjl-project/QEDprocesses.jl/pull/28): Add particle propagators.
- [#39](https://github.com/QEDjl-project/QEDprocesses.jl/pull/39): Coordinate-based implementation of diff cs and probabilities. (Superseded by later `PhaseSpacePoint` implementations, which can be constructed using coordinates)
- [#40](https://github.com/QEDjl-project/QEDprocesses.jl/pull/40): Add perturbative one-photon Compton implementation.
- [#51](https://github.com/QEDjl-project/QEDprocesses.jl/pull/51): Add initial `PhaseSpacePoint` definition.
- [#52](https://github.com/QEDjl-project/QEDprocesses.jl/pull/52): Add overloads in the process interface using `PhaseSpacePoint`s.
- [#54](https://github.com/QEDjl-project/QEDprocesses.jl/pull/54): Add phase space generation interface.
- [#59](https://github.com/QEDjl-project/QEDprocesses.jl/pull/59): Update process interface to use `PhaseSpacePoint`s instead of raw momenta. (Supersedes [#52](https://github.com/QEDjl-project/QEDprocesses.jl/pull/52))
- [#60](https://github.com/QEDjl-project/QEDprocesses.jl/pull/60): Add pretty-printing for some of the types. (`ParticleStateful`, `PhaseSpacePoint`, models, processes, coordinate systems, frames of reference, and phase space definitions)
- [#63](https://github.com/QEDjl-project/QEDprocesses.jl/pull/63): Improvement for the `PhaseSpacePoint` type, making it type stable and allowing in-place construction.
- [#68](https://github.com/QEDjl-project/QEDprocesses.jl/pull/68): Add an `InPhaseSpacePoint` definition allowing a phase space point to not contain particle states for the outgoing particles. This is useful in some interfaces that don't need the outgoing part of a phase space point.

### Maintenance

Besides the new features, this release contains some maintenance and minor changes and fixes. Many of these were temporarily necessary to maintain a working state during the restructuring.

- [#36](https://github.com/QEDjl-project/QEDprocesses.jl/pull/36): Remove custom registry from unit tests.
- [#37](https://github.com/QEDjl-project/QEDprocesses.jl/pull/37): Remove custom registry build step.
- [#38](https://github.com/QEDjl-project/QEDprocesses.jl/pull/38): Refactor differential cross section functionality.
- [#53](https://github.com/QEDjl-project/QEDprocesses.jl/pull/53): CompatHelper: StaticArrays compat version 1.
- [#61](https://github.com/QEDjl-project/QEDprocesses.jl/pull/61): CompatHelper: QuadGK compat version 2.
- [#62](https://github.com/QEDjl-project/QEDprocesses.jl/pull/62): Move test dependencies to the main `Project.toml`.
- [#71](https://github.com/QEDjl-project/QEDprocesses.jl/pull/71): Use Julia 1.10 in CI.
- [#74](https://github.com/QEDjl-project/QEDprocesses.jl/pull/74): (Re-)move interfaces that move to QEDbase.
- [#76](https://github.com/QEDjl-project/QEDprocesses.jl/pull/76): Refactor QED.jl package dependencies and namespaces.
- [#78](https://github.com/QEDjl-project/QEDprocesses.jl/pull/78): Use function implementations from QEDcore.
- [#80](https://github.com/QEDjl-project/QEDprocesses.jl/pull/80): Fix ambiguous function calls.
- [#81](https://github.com/QEDjl-project/QEDprocesses.jl/pull/81): Update dev version.
- [#82](https://github.com/QEDjl-project/QEDprocesses.jl/pull/82): Remove QEDbase compat entry.
- [#87](https://github.com/QEDjl-project/QEDprocesses.jl/pull/87): (Re-)move abstract cross section and probability implementations (move to QEDcore).
- [#89](https://github.com/QEDjl-project/QEDprocesses.jl/pull/89): Removes temporary dependencies to other dev versions that were necessary during restructuring.

## Version 0.1.0

This is the initial verison of QEDprocesses.
Expand All @@ -9,8 +54,8 @@ This is the initial verison of QEDprocesses.


### Highlights
* interface for scattering processes described by physical models (general properties, differential/total cross sections) https://github.com/QEDjl-project/QEDprocesses.jl/pull/11
* interface for abstract setups (general computation setup and process dedicated
- interface for scattering processes described by physical models (general properties, differential/total cross sections) https://github.com/QEDjl-project/QEDprocesses.jl/pull/11
- interface for abstract setups (general computation setup and process dedicated
setups) https://github.com/QEDjl-project/QEDprocesses.jl/pull/14
* setup ci for unit and integration testing https://github.com/QEDjl-project/QEDprocesses.jl/pull/5 https://github.com/QEDjl-project/QEDprocesses.jl/pull/7 https://github.com/QEDjl-project/QEDprocesses.jl/pull/21
* setup ci/cd for docs https://github.com/QEDjl-project/QEDprocesses.jl/pull/19
- setup ci for unit and integration testing https://github.com/QEDjl-project/QEDprocesses.jl/pull/5 https://github.com/QEDjl-project/QEDprocesses.jl/pull/7 https://github.com/QEDjl-project/QEDprocesses.jl/pull/21
- setup ci/cd for docs https://github.com/QEDjl-project/QEDprocesses.jl/pull/19
28 changes: 23 additions & 5 deletions Project.toml
Original file line number Diff line number Diff line change
@@ -1,13 +1,31 @@
name = "QEDprocesses"
uuid = "46de9c38-1bb3-4547-a1ec-da24d767fdad"
authors = ["Uwe Hernandez Acosta <u.hernandez@hzdr.de>", "Simeon Ehrig", "Klaus Steiniger", "Tom Jungnickel", "Anton Reinhard"]
version = "0.1.0"
authors = [
"Uwe Hernandez Acosta <u.hernandez@hzdr.de>",
"Simeon Ehrig",
"Klaus Steiniger",
"Tom Jungnickel",
"Anton Reinhard",
]
version = "0.2.0"

[deps]
DocStringExtensions = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae"
QEDbase = "10e22c08-3ccb-4172-bfcf-7d7aa3d04d93"
QEDcore = "35dc0263-cb5f-4c33-a114-1d7f54ab753e"
QuadGK = "1fd47b50-473d-5c70-9696-f719f8f3bcdc"
StaticArrays = "90137ffa-7385-5640-81b9-e52037218182"

[compat]
DocStringExtensions = "0.9"
QEDbase = "0.1"
QEDbase = "0.2.2"
QEDcore = "0.1"
QuadGK = "2"
StaticArrays = "1"
julia = "1.6"

[extras]
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

[targets]
test = ["Random", "SafeTestsets", "Test"]
12 changes: 1 addition & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# QEDprocesses

[![Doc Stable](https://img.shields.io/badge/docs-stable-blue.svg)](https://qedjl-project.github.io/QEDprocesses.jl/main)
[![Doc Stable](https://img.shields.io/badge/docs-stable-blue.svg)](https://qedjl-project.github.io/QEDprocesses.jl/stable)
[![Doc Dev](https://img.shields.io/badge/docs-dev-blue.svg)](https://qedjl-project.github.io/QEDprocesses.jl/dev)
[![Code Style: Blue](https://img.shields.io/badge/code%20style-blue-4495d1.svg)](https://github.com/invenia/BlueStyle)

Expand All @@ -11,22 +11,12 @@ To install the current stable version of `QEDprocesses.jl` you may use the stand
```julia
julia> using Pkg

# add local registry, where QEDprocesses is registered
julia> Pkg.Registry.add(Pkg.RegistrySpec(url="https://github.com/QEDjl-project/registry"))
# add general registry again to have it join the local registry
julia> Pkg.Registry.add(Pkg.RegistrySpec(url="https://github.com/JuliaRegistries/General"))

julia> Pkg.add("QEDprocesses")
```

or you use the Pkg prompt by hitting `]` within the Julia REPL and then type

```julia
# add local registry, where QEDprocesses is registered
(@v1.9) pkg> registry add https://github.com/QEDjl-project/registry
# add general registry again to have it join the local registry
(@v1.9) pkg> registry add https://github.com/JuliaRegistries/General

(@v1.9) pkg> add QEDprocesses
```

Expand Down
2 changes: 2 additions & 0 deletions docs/Project.toml
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
[deps]
Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
QEDbase = "10e22c08-3ccb-4172-bfcf-7d7aa3d04d93"
QEDcore = "35dc0263-cb5f-4c33-a114-1d7f54ab753e"
QEDprocesses = "46de9c38-1bb3-4547-a1ec-da24d767fdad"
11 changes: 10 additions & 1 deletion docs/make.jl
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
using QEDprocesses
using Pkg

# targeting the correct source code
# this asumes the make.jl script is located in QEDprocesses.jl/docs
project_path = Base.Filesystem.joinpath(Base.Filesystem.dirname(Base.source_path()), "..")
Pkg.develop(; path=project_path)
# temporarily necessary because processes used to have a compat that is gone after the `develop` above
Pkg.update()

using Documenter
using QEDprocesses

DocMeta.setdocmeta!(QEDprocesses, :DocTestSetup, :(using QEDprocesses); recursive=true)

Expand Down
38 changes: 24 additions & 14 deletions src/QEDprocesses.jl
Original file line number Diff line number Diff line change
@@ -1,23 +1,33 @@
module QEDprocesses

# Abstract model interface
export AbstractModelDefinition, fundamental_interaction_type
# constants
export ALPHA,
ALPHA_SQUARE, ELEMENTARY_CHARGE, ELEMENTARY_CHARGE_SQUARE, ELECTRONMASS, ONE_OVER_FOURPI

# Abstract process interface
export AbstractProcessDefinition, incoming_particles, outgoing_particles
export in_phasespace_dimension, out_phasespace_dimension
export number_incoming_particles, number_outgoing_particles
export differential_cross_section, total_cross_section
# propagator
export propagator

# Abstract setup interface
export AbstractComputationSetup, InvalidInputError, compute
export AbstractProcessSetup, scattering_process, physical_model
# specific compute models
export PerturbativeQED

# specific scattering processes
export Compton, omega_prime

using DocStringExtensions
using QEDbase
using QEDcore
using StaticArrays
using QuadGK

include("constants.jl")
include("utils.jl")
include("interfaces/model_interface.jl")
include("interfaces/process_interface.jl")
include("interfaces/setup_interface.jl")

include("models/models.jl")

# one photon compton
include("processes/one_photon_compton/process.jl")
include("processes/one_photon_compton/perturbative/kinematics.jl")
include("processes/one_photon_compton/perturbative/cross_section.jl")
include("processes/one_photon_compton/perturbative/total_probability.jl")

include("patch_QEDbase.jl")
end
7 changes: 7 additions & 0 deletions src/constants.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@

const ALPHA = inv(137.035999074)
const ALPHA_SQUARE = ALPHA^2
const ELEMENTARY_CHARGE = sqrt(4 * pi * ALPHA)
const ELEMENTARY_CHARGE_SQUARE = 4 * pi * ALPHA
const ELECTRONMASS = 0.510998928e6 # eV
const ONE_OVER_FOURPI = 1 / (4 * pi)
24 changes: 0 additions & 24 deletions src/interfaces/model_interface.jl

This file was deleted.

Loading

0 comments on commit 69053b6

Please sign in to comment.