Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge master into the architecture_2024 branch #1073

Merged
merged 66 commits into from
Mar 6, 2024

Conversation

imobachgs
Copy link
Contributor

The architecture_2024 branch is rather outdated. Take the latest changes from master.

balsa-asanovic and others added 30 commits January 29, 2024 00:11
Three suggestions are given:
name+surname
nameInitial+surname
name+surnameInitial
Replace strong with bold tag
Co-authored-by: Josef Reidinger <jreidinger@suse.cz>
Since we started to build Agama, we have introduced *a lot* of changes.
Initially, it was just Ruby code, but then we introduced the Agama CLI,
moved some code to Rust, etc. So, it is time to reorganize our packages.

This PR includes the following changes:

* A new `agama` package that contains `agama-dbus-server` and
`agama-web-server` binaries. You don't need to keep them separated.
* A new `agama-cli` package, which is a subpackage of `agama`.
* Renamed the `rubygem-agama` package to `rubygem-agama-yast` package
as, in the short term, it should only contain YaST-specific bits to
Agama.
* Additionally, it re-enable some tests and fixes some warnings.

You can (temporarily) see the results in [my home
project](https://build.opensuse.org/project/show/home:IGonzalezSosa:branches:systemsmanagement:Agama:Staging).

## Todo

- [x] Rename `rubygem-agama` to `rubygem-agama-yast`
- [x] Reorganize Rust-based packages
- [x] Update the documentation
- [x] Update the changes files 

## Links

* Trello: https://trello.com/c/8KGOkTkE/
It's a test that have a lot of unknown words because they are username suggestions. It makes sense to disable the spell checker in this case.
After merging #1056 we detected that a runtime dependency on
`python-langtable-data` is needed. This PR fixes the problem.
imobachgs and others added 22 commits March 2, 2024 10:20
Agama-weblate commit: a787199033d6c1cd1ffb1b9d9fe19fdec544ee5c
Updating the web translation files from the agama-weblate repository
Trello:
https://trello.com/c/2MjaulMd/3566-3-expose-the-software-api-over-http

This PR exposes the public[^1] part of the software API through the
HTTP/JSON interface. It includes:

* `/software/patterns`: list of patterns, including whether they are
selected (and by whom).
* `/software/products`: list of products.
* `/software/probe`: starts the software probing.
* `/software/config`: describing the software configuration.

```json
{
  "patterns": [
    "gnome"
  ],
  "product": "Tumbleweed"
}
```

Additionally, it exposes the following events through the websocket:

* `PatternsChanged`, containing the patterns and who selected them
('user' or 'auto').
* `ProductChanged`, with the name of the new product.

[^1] The part of the D-Bus API that it is used by the web UI.

## Implementation details

In this phase of the development, we are still deciding the best way to
implement these HTTP/JSON interfaces. The implementation has two parts:

* The [HTTP/JSON interface
itself](https://github.com/openSUSE/agama/blob/http-software-srv/rust/agama-server/src/software/web.rs#L104),
which is implemented as a
[Router](https://docs.rs/axum/latest/axum/struct.Router.html) and a set
of small functions (one per each endpoing+verb).
* An [events
stream](https://github.com/openSUSE/agama/blob/http-software-srv/rust/agama-server/src/software/web.rs#L60)
which emits Event values (see
[stream](https://tokio.rs/tokio/tutorial/streams) in the Tokio
documentation).

About the service status, the zbus proxies are cached and can be cloned,
so it looks like a good idea to keep our clients as part of the state.

## In the future

There are a few improvements we could consider in the future:

* Split the events in different types depending on the service
(`SoftwareEvent`, `ManagerEvent`), so those services only know about
their types.
* Consolidate all errors under a common one (e.g.,
`Error::Software(SoftwareError)`, `Error::Manager(ManagerError)`, etc.)
to have a single `IntoResponse` implementation while keeping modules
isolation.
Although the directory was renamed to `agama-server`, the crate name
remained the same.
@imobachgs imobachgs merged commit 7de4495 into architecture_2024 Mar 6, 2024
12 checks passed
@imobachgs imobachgs deleted the merge-master branch March 6, 2024 09:03
imobachgs added a commit that referenced this pull request May 6, 2024
After a few months of work, it is time to merge the `architecture_2024`
branch into `master`. It is still a work-in-progress, but all the
efforts should be go now against that branch.

## Pull requests

* #1061
* #1064
* #1073
* #1074
* #1080
* #1089
* #1091
* #1092
* #1094
* #1095
* #1099
* #1100
* #1102
* #1103
* #1112
* #1114
* #1116
* #1117
* #1119
* #1120
* #1123
* #1126
* #1129
* #1130
* #1131
* #1132
* #1133
* #1134
* #1136
* #1139
* #1140
* #1143
* #1146

## Other commits

* 8efa41f
* 9e2dec0
@imobachgs imobachgs mentioned this pull request May 17, 2024
imobachgs added a commit that referenced this pull request May 17, 2024
Prepare for releasing Agama 8. It includes the following pull requests:

* #884
* #886
* #914
* #918
* #956
* #957
* #958
* #959
* #960
* #961
* #962
* #963
* #964
* #965
* #966
* #969
* #970
* #976
* #977
* #978
* #979
* #980
* #981
* #983
* #984
* #985
* #986
* #988
* #991
* #992
* #995
* #996
* #997
* #999
* #1003
* #1004
* #1006
* #1007
* #1008
* #1009
* #1010
* #1011
* #1012
* #1014
* #1015
* #1016
* #1017
* #1020
* #1022
* #1023
* #1024
* #1025
* #1027
* #1028
* #1029
* #1030
* #1031
* #1032
* #1033
* #1034
* #1035
* #1036
* #1038
* #1039
* #1041
* #1042
* #1043
* #1045
* #1046
* #1047
* #1048
* #1052
* #1054
* #1056
* #1057
* #1060
* #1061
* #1062
* #1063
* #1064
* #1066
* #1067
* #1068
* #1069
* #1071
* #1072
* #1073
* #1074
* #1075
* #1079
* #1080
* #1081
* #1082
* #1085
* #1086
* #1087
* #1088
* #1089
* #1090
* #1091
* #1092
* #1093
* #1094
* #1095
* #1096
* #1097
* #1098
* #1099
* #1100
* #1102
* #1103
* #1104
* #1105
* #1106
* #1109
* #1110
* #1111
* #1112
* #1114
* #1116
* #1117
* #1118
* #1119
* #1120
* #1121
* #1122
* #1123
* #1125
* #1126
* #1127
* #1128
* #1129
* #1130
* #1131
* #1132
* #1133
* #1134
* #1135
* #1136
* #1138
* #1139
* #1140
* #1141
* #1142
* #1143
* #1144
* #1145
* #1146
* #1147
* #1148
* #1149
* #1151
* #1152
* #1153
* #1154
* #1155
* #1156
* #1157
* #1158
* #1160
* #1161
* #1162
* #1163
* #1164
* #1165
* #1166
* #1167
* #1168
* #1169
* #1170
* #1171
* #1172
* #1173
* #1174
* #1175
* #1177
* #1178
* #1180
* #1181
* #1182
* #1183
* #1184
* #1185
* #1187
* #1188
* #1189
* #1190
* #1191
* #1192
* #1193
* #1194
* #1195
* #1196
* #1198
* #1199
* #1200
* #1201
* #1203
* #1204
* #1205
* #1206
* #1207
* #1208
* #1209
* #1210
* #1211
* #1212
* #1213
* #1214
* #1215
* #1216
* #1217
* #1219
* #1220
* #1221
* #1222
* #1223
* #1224
* #1225
* #1226
* #1227
* #1229
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants