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

Versioning #154

Closed
2 of 13 tasks
askbulle opened this issue Sep 9, 2021 · 54 comments · Fixed by #341
Closed
2 of 13 tasks

Versioning #154

askbulle opened this issue Sep 9, 2021 · 54 comments · Fixed by #341
Assignees
Labels
feat New feature or request feedback Originated from user feedback

Comments

@askbulle
Copy link

askbulle commented Sep 9, 2021

User input
In addition to general metadata, also a version history with author would be useful (when sharing function with edit is available).

Sharepoint ID(s)
31

User story
As an end-user I want to keep track of all changes and possibly being able to roll-back to earlier versions to be able to understand history and secure understanding for where we are today and why (continuous improvement).


image

Back-end requirements

  • New route to retrieve the times when a project changed
  • New parameter to Project/GetById for "as of datetime x"
    - [ ] Any more routes that need to support "as of"? Potentially the vsmObject detail view... but we can manage without.

User Requirements (for testing)

Unless mentioned otherwise, any user can do the following:

Current

  • User can see the current version.
  • User (with edit-role) can edit a card in the current version.
  • User can see the details of any card in the current version.

Previous

  • User can see a list of all versions by clicking on the version icon (down right-hand corner). (versions are ordered by date and only one per day is shown)
  • User can switch between showing the changes grouped by Year, Month, Day, Hours, Minutes or Seconds (default to Days)
  • User can view a previous version.
  • User can view the details of any card in a previous version.
  • User can share the url of any version with others (copy from the url bar) and opening the url in a new tab will show that version, with the version view visible.
  • User cannot edit a card in a previous version. ( Drag'n drop interactions should be disabled, and sidebar view should be in read-only mode. )
  • Exiting the version view should return the user to the current version.
  • Current and To be processes should work the same as expected.
@askbulle askbulle added feat New feature or request Figma feedback Originated from user feedback labels Sep 9, 2021
@askbulle askbulle added the question Further information is requested label Sep 9, 2021
@askbulle askbulle mentioned this issue Sep 13, 2021
15 tasks
@knudsvik
Copy link
Contributor

Should #192 be solved at the same time?

@SjoenH SjoenH added the needs design Requires design input label Sep 15, 2021
@SegarJJ
Copy link

SegarJJ commented Sep 20, 2021

I was thinking this story could be split into two features. to ease us into it. One feature to view the changes on the VSM and another to allow the admin some method to start a rollback process, whatever it may include....

@Magos
Copy link

Magos commented Sep 24, 2021

After technical exploration with @pagodo we have some conclusions:

  • The Temporal Tables feature of our database seem to be our best approach for this versioning feature, offering performance improvements over maintaining our own history tables with triggers and an improved syntax for querying the history.
  • This should minimize the alterations to existing code for CRUD operations.
  • In order to actually perform time travelling queries we have two options:
    • Drop down in abstraction to SQL instead of Entity Framework for these queries.
    • Update the API server to run on .Net 6, so we can access Entity Framework Core 6. Both of these technologies are currently considered release candidates, not finished releases.

@pagodo
Copy link

pagodo commented Sep 24, 2021

Moving to a release candidate for the technology the api is based on is not a good idea, there is a good chance we will be left with a unstable system. The release of these versions is set to early november and we should at least wait with the prod release until the technology is formaly released and if we are to release a early version of dotnet6 we have to do extensive testing of the api. But we may do development targeting a release candidate

@SjoenH
Copy link
Contributor

SjoenH commented Sep 27, 2021

Maybe we should put this on hold untill @Linedueo have landed on designing functionality requirements with our POs?

We may consider supporting the release-candidate only for Flyt application if we find that the new functionality it provides is the best way to implement our versioning -requirements.

@SjoenH
Copy link
Contributor

SjoenH commented Sep 29, 2021

From Daily 29 sept:
It sounds like we probalbly should store all changes with timestamps in the back-end. (temporal tables etc)
Then it is a visualisation problem to pick good points. Or we could show them all like in Figma history view.

Talking with @Magos we believe that the view should be able to update quite quickly when selecting a prior state.

@SjoenH SjoenH self-assigned this Sep 29, 2021
@Linedueo
Copy link

Versjonshistorikken blir visualisert som en timeline. Denne viser en oversikt over datoer hvor prosessen har blitt endret (oppsummert per dag)

@SjoenH
Copy link
Contributor

SjoenH commented Sep 30, 2021

Sounds good @Linedueo.
Please update user-story and notify us when it's ready for development.

@Linedueo
Copy link

Skjermbilde 2021-10-19 kl  15 59 24

Versioning design @SjoenH Figma -> https://www.figma.com/file/IkHwmIQrsT0iR34f5R5UnZ/VSM?node-id=2702%3A102469

@SjoenH
Copy link
Contributor

SjoenH commented Oct 21, 2021

@Magos let's write some requirements when we have the time for it.

@SjoenH
Copy link
Contributor

SjoenH commented Mar 10, 2022

@Magos is this something you want to improve? Looks like the first logged change in /updates is created before the process is ready.

@SjoenH
Copy link
Contributor

SjoenH commented Mar 10, 2022

@Magos To reproduce. Create a new process. Then the first returned timestamp in the /updates response does not exist.

@Magos
Copy link

Magos commented Mar 10, 2022

I've attempted a fix by returning the Update values instead of the PeriodStart values stored, but this is not late enough after the creation process to avoid making the version of the process without objects in it visible. At the moment, I'm inclined not to do more to hide this unless @knudsvik and @askbulle think it's important to hide.

@SjoenH
Copy link
Contributor

SjoenH commented Mar 14, 2022

Todo:

  • Remove second-resolution selection.

@SjoenH
Copy link
Contributor

SjoenH commented Mar 14, 2022

I've removed the second resolution and released to QA again. @ntorsen Would you please do a final test of everything before we plan the release?

@ntorsen
Copy link

ntorsen commented Mar 14, 2022

@SjoenH here are some feedback from testing done in QA environment.
User requirements for testing ✔
Second-resolution selection is removed ✔
Deleting PQIRs is working as expected ✔

Other remarks:

  • If you copy the URL of a previous version and opening it in a new window, you will see that that version is visible. However, when looking at cards for more info a "invalid process type" message pops up as well as a 500 internal server error. This does not happen for all cards, but in this case it happened on a blue and yellow card.
    image

  • Going back in time (to the start) when selecting Minute-resolution selection, same message as for Second-resolution comes up:
    image

@SjoenH
Copy link
Contributor

SjoenH commented Mar 14, 2022

@ntorsen can you reproduce the error with a new process?

@SjoenH
Copy link
Contributor

SjoenH commented Mar 14, 2022

@ntorsen I'll look into the 500 errors.

To reproduce: delete a card, navigate back to when it existed and try to open it.

This is a front-end bug.... thus moving this back into in-progress. 👍

@ntorsen
Copy link

ntorsen commented Mar 14, 2022

@SjoenH able to recreate it by deleting a card --> navigate back to when it existed --> copy URL into a new window (incognito) --> clicking on deleted card to view it
image

(reproduced with a new process also)

SjoenH pushed a commit that referenced this issue Mar 14, 2022
You may now look at previous versions of a process and see what changed over time.

closes #154
@SjoenH
Copy link
Contributor

SjoenH commented Mar 14, 2022

@ntorsen fix is out in QA again. 🧪

@ntorsen
Copy link

ntorsen commented Mar 14, 2022

Working good now 🏆 @SjoenH

SjoenH pushed a commit that referenced this issue Mar 15, 2022
You may now look at previous versions of a process and see what changed over time.

closes #154
@SjoenH
Copy link
Contributor

SjoenH commented Mar 16, 2022

⏳ 🚀 @knudsvik @askbulle
We have some changes that requires downtime. We are planning to release at 11:45.
Estimated downtime up to 1 hour.


@Magos

  • Database. Schema changes. Activate system-versioning (or whatever it is called...)
  • Code
  • Some changes related to solving tasks.

Frontend
Push out what's in QA and bump version + change-log.

dansvend pushed a commit that referenced this issue Mar 16, 2022
You may now look at previous versions of a process and see what changed over time.

closes #154
@Magos Magos self-assigned this Oct 8, 2022
@Linedueo Linedueo self-assigned this Nov 1, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feat New feature or request feedback Originated from user feedback
Projects
None yet
Development

Successfully merging a pull request may close this issue.

8 participants