I came up with the idea for Tracking the untracked items while creating the Sitecore Package, about a month ago. Turns out that there is sort of similar functionality available right out of the box with Sitecore Package Designer, where you can add the items/files dynamically, based on different options and ranges.
But there are a few things that it lacked, so I with the help of my friend @nikkipunjabi started developing it. Nikki is top notch Sitecore Developer, working on Sitecore for about 5 years, has already written modules to help the Sitecore Community
Problems:
There are some problems that I find Developers face while creating the packages with dynamically.
- No better GUI
There is no better GUI to view the items, that are changed/recently updated after the package release. - No way to exclude items
There is no way to exclude any item and avoid it to include while creating packages, ( some test items you want to exclude every time) - No package history
No package history is available and for enterprise level projects, it is really confusing to track the missed items. - Larger packages
Larger packages take lots of time for installing. And if there are multiple instances it will be trouble.
The Answer:
Sitecore Package Assistant is the answer to those problems.
When I came up with the idea, it needs refinement, so things getting improved, and I realized that this module not only fulfills the needs of package generation efficiently but also provides better options of assistance while creating packages.
Also, there were modules already available with the name Sitecore Package Genertor/Creator.
From now on it will be called the Sitecore Package Assistant. Here is the Github repo
Features:
Sitecore Package Assistant has the following features, which pretty much reduces the burden of package creation. Once you will use it you will realize that its you personal work assistant. This feature is not a one time use, but you will often get to use to, not daily but weekly though, you will get addicted to it.
The target market for this module is primarily the developers, but It will also benefit the Marketing guys, who wants to play around with the different Sitecore Instances.
1. Smart GUI
Smart GUI, helps you to identify right at the moment you save any item. At the very left, the Sitecore gutter shows the very saved items marked with the icon (box with a add sign) in the Sitecore Tree.
You keep on working and making changes in your Sitecore solution, the assisting keep assisting and marking the very saved items. Once you are done with the development and the deployment phase occur, you will require to package those items.
Here comes the assistant, all your changes in the Sitecore solution are ready to be packaged, and is waiting for the approval to create a package. It not only shows the marked items in the tree, but you can also view it in the With the marked item list
2. Exclude items
The unwanted/unnecessary items can be excluded, with this module. There are certain scenarios, where you want to exclude the items from continuous builds,
In my case, I have a page named as “Test”, where I have worked on some modules that are not ready but the client needs to have the work done till date. I don’t want to show the client the incomplete things. So I will avoid to include that item in the package. The incomplete things might break the staging/production environments.
What I want is to never had to worry about which items I don’t want to include in the package ready for the client. And those items will only be available once the Quality Assurance Department has fully tested it.
This module will also benefit the multiple teams working on the same project. The same logic, the different developers are working on different modules, but they want to merge the incomplete latest features with other teams, so that the other team has the latest codes.
For example: There is one module that is dependent to APIs which can not be shared with the other team, but still the team requires to work on variant of the very same module, this module will help them as well.
3. Packages History
There Package history is a handy, where every package is logged. This is good for incremental packages, where you can track the items for any package. Sitecore Package Assistant provides you the ability to install packages efficiently.
The package history records every single package you create, and maintains it in the log, where you can see all the packages created within the solution. In case any module is breaking you can see the package history if everything as the deployment package is there or not.
Again this will reduce the gap between teams collaboration and help in deployment environments (development, testing, staging, production, etc).
The generated packages are available in the [xp0.sc]\App_Data\packages
folder, and can be shared as the other packages do.
How it works:
Follow this complete guide of how it works.
1. Install Prerequisite:
Install the prerequisite, Sitecore Powershell Extensions. using the Sitecore installation wizard.
2. Install the Sitecore Package Assistant:
Install the Sitecore Package Assistant, in case you don’t see this icon at the very left upon saving you item. Go to
/sitecore/system/Modules/PowerShell/Script Library/Sitecore Package Assistant/Content Editor/Context Menu/Sitecore Package Assistant/Create Package
And Right-Click to open it with SPE, Click on the “Edit with ISE”, the popup opens up, go to Settings Tab, Click Rebuild All, and Click on the Sync Library with the Content Editor Gutter.
3. Automatically marking the saved/changed items
Sitecore Package Assistant work on his own. What you need to do is just nothing and keep on working with the Sitecore Solution. It will automatically mark the items you have worked on with the add package icon
. It also tracks the newly created items and make them available for the new Package.
For the items you had worked on marked with , or made changes, the IDs of those items will be saved in the item SPA: {BECB151A-562F-4D0C-87A7-A3CBAC3220D9} placed at /sitecore/system/Modules/Sitecore Package Assistant/SPA
4. Excluding the Unwanted Items from Package
For all those items unnecessary for the release or any environment, you want to permanently exclude the items until or unless added back to to tracked items, you click on the tracked items at the very left in the Sitecore Gutter, which marks the item with remove package icon
Similar to adding the Curent Saved Items, the IDs for the excluded items marked with are added to the Untrack Items in the item SPA: {BECB151A-562F-4D0C-87A7-A3CBAC3220D9} placed at
/sitecore/system/Modules/Sitecore Package Assistant/SPA
5. Maintaining the history for the packages
For all those items marked with are ready to be packaged. You can Right-Click on the Context Menu and go to Scripts > Sitecore Package Assistant > Create Package
And click the Create Package
And your package will be available here. Once created, the tracking will be reset and the tracking will start for the another package.
And once you create package, the history of packages will be maintained here.
The incremental packages in which the items are dependent on one another, will be easily tracked. And if missed you can easily follow the history and install the packages one by one, and get it sorted.
This will also reduce the failed packages in stallions errors. As installation packages either small ones, take much time than expected ed, you might have noticed it while installing Sitecore Powershell Extensions. And for the larger packages of enterprise level, where there is much content, I can understand the pain it causes.
Troubleshooting
If you don’t see this, make sure, you have the Sitecore Package Assistant enabled at the Content Menu. Just Right-Click at the very left at the Gutter and check if the Sitecore Package Assistant is enabled.
Short Overview of Logic
Sitecore Package Assistant is composed of two parts, here is the Short Overview of Logic.
1. Sitecore SharedSource Code
Sitecore SharedSource Code has the complete logic of the managing items tracked and which items to be excluded from the package, and the packages history.
2. Sitecore Powershell Extension
The package creation is being done using Sitecore Powershell Extensions as base module and running Powershell Scripts for creating pacakges.
As we started development, things gotten improved and we had to mold the expected results. We are now using Sitecore Gutter to show the marked items Ready for Sitecore Package, and which items to be excluded.
This is only the beginning, I have some other ideas that will be very beneficent.
Feel free, to use it and share your feedback. Cheers!
Reference Links
Sitecore Package Assistant
Sitecore Powershell Extensions
Sitecore Marketplace
Sitecore Experience Platform 9 update 1
Github Code
It says in marketplace this is only compatible with XP but when I read your post I cannot see why would I not be able to run on XM?
Have you tried if this can be used on XM?
I haven’t yet tested it with XM. I will update it on marketplace after verifying. And I could not find any option to select XM. It is tested on SXP 8 though