Workflow Versioning and Usage in Kogito - kogito

We have recently started our work with kogito and we see our workflow tend to change a lot
What is the process to ensure backward compatibility.
Need direction on how we can have backward compatibility and right way to version workflows. Can old workflows accomodate new changes.

Related

GitLab but no "settings->applications" menu

My Gitlab version is Community Edition 9.5.10.
But I can't find the menu settings => applications.
How to fix it?
Given the fact your version is about 3 years old, which is comparable to a geological era in terms of gitlab developement (1 minor release a month, several patch releases in between, and 4 major versions up since yours....), I would first make sure this feature was actually available in 9.5.10.
By the way, I strongly recommend that you upgrade your gitlab to the latest version available and put an upgrade scenario in place to keep it up to date on a very regular basis.
Now, I will not install this old version just to test. But in the latest releases (I don't know since when), there is a setting in the admin area to disable that feature for regular users in admin > settings > general > accounts and limits (All those settings might have totally changed place between versions...).
If you untick that box, only admins are able to reference global oauth applications in the admin area. Meanwhile, on my current version (13.2.6), this does not disable the menu in user settings but only shows a notice asking you to contact your admin.
speaking of upgrading GitLab, GitLab 14.0 (June 2021) proposes:
Streamlined top navigation menu
Streamlined top navigation menu
GitLab 14.0 introduces an all-new, streamlined top navigation menu to help you get where you’re going faster and with fewer clicks.
This new, consolidated menu offers the combined functionality of the previous Projects, Groups, and More menus.
It gives you access to your projects, groups, and instance-level features with a single click.
Additionally, all-new responsive views improve the navigation experience on smaller screens.
See Documentation and Epic.
You will get to your settings even faster now.
The rest has also improved:
Sidebar navigation redesign
Sidebar navigation redesign
GitLab is big. And it’s getting bigger. As we’ve introduced new features and categories, navigating the densely-packed left sidebar has become less intuitive.
In GitLab 14.0 we’ve redesigned and restructured the left sidebar for improved usability, consistency, and discoverability. We’ve moved some links to features around, split up features in the Operations menu into three distinct menus, improved visual contrast, and optimized spacing so all the menu items can fit comfortably on a smaller screen. These changes are intended to better match your mental model of the DevOps lifecycle, and provide a more predictable and consistent experience while navigating within your projects and groups.
See Documentation and Epic.

Orchard Core CMS - Content Versioning, Scheduling and Audit Trail

We are considering Orchard Core CMS for our needs. There are three features that appear to have been supported in legacy Orchard - the ability to version content, schedule publishing and audit trails, but none of these appear to be available in Orchard Core CMS OOB.
How can functionality for the three features be accomplished in Orchard Core? Would they have to be done through the use of workflows or custom modules? Any insight into whether these features are on the roadmap?
Thanks!
Content versioning is available in Orchard, when you publish a draftable content item it'll create a new version. There is just no UI for this yet but we actually have an Audit Trail module ready behind the scenes and working on open-sourcing it. This offers full audit trail capabilities similar to Orchard 1, as well as the ability to browse and restore previous versions.
Scheduled publishing is done and the pull request awaits merging.
Received this response from Sebastian Ros, one of the key contributors to Orchard Core. As of the time of writing:
Content versioning is already implemented. There is no UI to list previous versions right now. There is an issue filed to track it.
Scheduled publishing can already be implemented using workflows, but there is an issue to track a more integrated solution, like in O1.
Audit trails is on the roadmap but not yet started.
1.0 will be shipped when all issues currently tagged with 1.0 and P0,P1,P2 flags have been implemented.
https://github.com/OrchardCMS/OrchardCore/issues/5597

Application Lifecycle Management for Web Applications (TFS)

We are working on a web application (Javascript + php). We want to start using Team Foundation Server in order to apply application lifecycle management. but we don't know where to start! any good guide or tutorials?
If you are investigating TFS to be used as an ALM tool in your company, you probably want to take a look at the free preview of the service that is available in the cloud. That will allow you to see if this tool will get you what you need. There a lots of tools out there, but first you need to figure out what your problem is and what you are trying to solve. TFS may not be the solution you need, but it is a solution for certain teams.
You'll probably likely be using TFS as an ALM tool for the following:
Source Control. Ensure you have version history on your changes. Note: You can now tap into GIT as your repository, if you don't want to use the TFS source control.
Continuous Integration. You can make your build configurations deploy your files out to your environments, and run unit tests if necessary.
Bug Tracking. Use the built-in work items to track all your bugs.
Requirements Tracking. Use Scrum or Kanban for your project to take advantage of the boards that are available with the service. Work items like 'Stories' or 'Product Backlog Items' will let you track the work your team is delivering.
Burndown. The built-in reports should help you report to your management on progress, though you'll have to see if the TFS ones meet your needs.
Test Cases. Your QA team can write their test cases in TFS to document how to test the requirements. If you have the correct license, you can also tap in Microsoft Test Manager for your QA team to execute and plan their tests.
I would strongly advise doing some research into what ALM means, what it is used for, and why you should be doing it before deciding on a tool. The tool won't fix the problem, it just supports you in whatever you are doing to fix your problem.

Are there design patterns for writing SharePoint workflows that will be upgradable?

I have asked a question on another thread about upgrading long running workflows and have not received an answer that I wanted to hear.
(How to upgrade a long running SharePoint Workflow already in production)
The answer, which matches up with the other research I have done on this topic, suggests installing the new WF (workflow) in a side by side method and marking the old WF as no new instances.
I have read that if the new WF has the same interface then there may be a possibility just replacing the original WF's dll and the existing long running workflows will continue to function.
Is there a design pattern, or guidelines, that would be useful in creating the original workflow allowing for code changes over the life-cycle of a product, without having to replace the workflow in each SharePoint List instance?
There are two parts to a workflow in SharePoint - .net code and xml configuration.
For changes in the code, you can make changes and redeploy your solution package - as long as the strong name of the assembly doesn't change the new code will get called the next time an event occurs on an existing workflow. You just need to be careful when making changes that your code doesn't assume that the workflow was started using the current code.
Any changes in the xml configuration (effectively the interface definition for the workflow) will require the more complete new deployment.

What is your code maintenance strategy for custom SharePoint assemblies?

How do you handle improvements and added functionality to your existing SharePoint code?
Did you deploy your original code as a feature?
Do you create a new feature_V2 and deactivate the original?
What processes have you found that led to problems in the future?
I am specifically interested about WebParts, EventHandlers, and WorkFlows.
From what I can find, MS did not leave a "Best Practices" around updating existing code. (Actually, I'm not sure they left a "Practice" much less a "Best Practices")
You can see other questions around this topic:
how-to-upgrade-a-long-running-sharepoint-workflow-already-in-production
how-to-update-spitemeventreceiver-assembly-version-for-a-list-in-sharepoint
should-i-keep-solutions-and-features-in-a-1-1-ratio
What is your method?
I understand this question may be subjective, but I feel there is a large information gap surrounding this area of SharePoint development.
Thank you,
Keith
We always deploy custom code as features and solutions. When it is time to upgrade the existing code, all you have to do is stsadm -upgradesolution and everything works very nicely. I do not like the idea of having feature_v2 type features around...it makes it extremely difficult to keep track of the current version. I think you should only have one version of each feature in your production environment.
Leave the version control to your source control system.
I'm working at a shop that does a lot of SharePoint development. You want to deploy by feature with a solution package. You can easily upgrade your features as you go along and you will need to upgrade the solution package. This solution package can be created from a TFS Build server with WSPBuilder. As you along, the only thing left is to upgrade the solution and "Force" reactivate your feature to have the new feature of the feature.
Don't forget to do an IIS reset for any new code deployment that is done through the GAC. If you put anything inside like sitemaps and resources inside your 12, you will want to do a stsadm -o copyappbincontent.
If you deploy features that contain application files, you want to unload your application on ALL servers of the farm. It can easily be done by putting an App_Offline.htm at the root of every application on every machine.
When completed, remove App_Offline.htm (or rename it) and you are done. Your site is back online.

Resources