10
45
Fork
You've already forked doipjs
28

Big v1 restructure #53

Merged
yarmo merged 21 commits from v1-restructure into dev 2023年07月13日 10:48:51 +02:00
Owner
Copy link

Summary

This PR makes big internal changes to the library so that it gives uniform output for all profiles, regardless of whether it was created with OpenPGP or ASP. The new Profile and Persona class should also work fine for future profiles created with new methods such as the envisioned cryptography-less "domain" profiles.

Compliance

This PR makes doip-js compliant with https://spec.keyoxide.org/spec/2/. The spec is still WIP as additional info is needed but what is there should remain the same.

Rationale

I wish this transition could have been smoother and more progressive, but the fact is that it's a big update that changes many internal aspects.

The big underlying issue that doip-js in its current state is extremely OpenPGP-centric. Profile data is stored within a JSON property named "keyData". That is fine within the OpenPGP world but for any other type of profile, this will not work. Using ASPE, the profile data is stored and transmitted along with the key data, not inside of it. And future "domain" profiles may not even have a key at all.

And there were many other such grievances with the codebase that made it ill-suited to work with ASP profiles.

As I saw no clear progressive path, I have decided to make a big PR that contains all the necessary changes to fix doip-js internal logic. The logic that this PR includes is much more sound and should last for a while. Which is why this PR will trigger the v1 release of the library. This is how doip-js should work and any changes to that should be clearly communicated to the user via semantic versioning.

## Summary This PR makes big internal changes to the library so that it gives uniform output for all profiles, regardless of whether it was created with OpenPGP or ASP. The new Profile and Persona class should also work fine for future profiles created with new methods such as the envisioned cryptography-less "domain" profiles. ## Compliance This PR makes doip-js compliant with https://spec.keyoxide.org/spec/2/. The spec is still WIP as additional info is needed but what is there should remain the same. ## Rationale I wish this transition could have been smoother and more progressive, but the fact is that it's a big update that changes many internal aspects. The big underlying issue that doip-js in its current state is extremely OpenPGP-centric. Profile data is stored within a JSON property named "keyData". That is fine within the OpenPGP world but for any other type of profile, this will not work. Using ASPE, the profile data is stored and transmitted *along with* the key data, not inside of it. And future "domain" profiles may not even have a key at all. And there were many other such grievances with the codebase that made it ill-suited to work with ASP profiles. As I saw no clear progressive path, I have decided to make a big PR that contains all the necessary changes to fix doip-js internal logic. The logic that this PR includes is much more sound and should last for a while. Which is why this PR will trigger the v1 release of the library. This is how doip-js should work and any changes to that should be clearly communicated to the user via semantic versioning.
chore: update builds
All checks were successful
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/push/publish-npm Pipeline was successful
58561d6e0d
fix: fix compliance with Keyoxide v2 spec
Some checks failed
ci/woodpecker/push/test Pipeline failed
ci/woodpecker/push/publish-npm unknown status
6eb2435127
fix: fix compliance with spec by including fetcher
All checks were successful
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/push/publish-npm Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/publish-npm Pipeline was successful
128c9bf682
chore: update builds
All checks were successful
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/push/publish-npm Pipeline was successful
ci/woodpecker/pr/publish-npm Pipeline was successful
65752d0dde
chore: new version 1.0.0-rc.0
All checks were successful
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/push/publish-npm Pipeline was successful
ci/woodpecker/pr/publish-npm Pipeline was successful
e6228ed22e
chore: new version 1.0.0
All checks were successful
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/push/publish-npm Pipeline was successful
ci/woodpecker/pr/publish-npm Pipeline was successful
89ab8cccc1
Sign in to join this conversation.
No reviewers
Labels
Clear labels
bug
Something is not working

Archived

enhancement
New feature

Archived

Contribution welcome
Get started contributing here
Good first issue
Good if you are new to the project or to open source contributions
Impact
External
Affects the people using the project
Impact
Internal
Affects on the people working on the project
Priority
Critical
Work on right now
Priority
High
Work on at earliest convenience
Priority
Low
Work on in spare time
Priority
Medium
Work on regularly
Review
Duplicate
Already exists
Review
Off Topic
Does not fall within the scope of the repo/project
Status
Backlog
Is not being worked on yet
Status
Blocked
Is waiting on something or someone
Status
Completed
Is done
Status
In Progress
Is being worked on
Status
Investigating
Is waiting on research or questions
Status
Needs Decision
Is waiting on a decision by the devs/contributors
Status
Needs Info
Is waiting on additional information before it can be solved
Status
Needs Triage
Is new issue that needs reviewing
Status
Testing
Is being checked and verified
Status
Waiting For Review
Is waiting on reviewers to approve
Status
Won't Fix
Won't be fixed
Type
Bug
Related to something not working as intended
Type
CI
Related to continuous integration
Type
Documentation
Related to documentation
Type
Enhancement
Related to a new feature or an improved one
Type
New Claim
Related to a new identity claim/proof
Type
Security
Related to security
Type
Tests
Related to code tests
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
keyoxide/doipjs!53
Reference in a new issue
keyoxide/doipjs
No description provided.
Delete branch "v1-restructure"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?