Sitecore Package Assistant, the items tracker and packages history

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.

2018-09-29_1620

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.

  1. No better GUI
    There is no better GUI to view the items, that are changed/recently updated after the package release.
  2. 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)
  3. No package history
    No package history is available and for enterprise level projects, it is really confusing to track the missed items.
  4. 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.

packages

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.

checklistweb.jpg

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.

sitecore package assistant - add

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.

sitecore package assistant - delete

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.

2018-10-02_2228

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.

2018-10-02_2230.png


How it works:

Follow this complete guide of how it works.

blackboard-business-chalkboard-355988.jpg

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 package_add.png 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.

2018-10-02_2232.png

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 package_add.png . It also tracks the newly created items and make them available for the new Package.

item - sitecore package assistant - add.png

For the items you had worked on marked with package_add.png , 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

2018-10-02_1558

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 package_delete.png

item - sitecore package assistant - delete .png

Similar to adding the Curent Saved Items, the IDs for the excluded items marked with package_delete.png are added to the Untrack Items in the item SPA: {BECB151A-562F-4D0C-87A7-A3CBAC3220D9} placed at

/sitecore/system/Modules/Sitecore Package Assistant/SPA

2018-10-02_1600

5. Maintaining the history for the packages

For all those items marked with package_add.png 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

2018-10-02_2215.png

And your package will be available here. Once created, the tracking will be reset and the tracking will start for the another package.

2018-10-02_2218.png

And once you create package, the history of packages will be maintained here.

2018-10-02_2218-2

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.

2018-10-02_1655


Short Overview of Logic

Sitecore Package Assistant is composed of two parts, here is the Short Overview of Logic.

arrows-box-business-533189.jpg

1. Sitecore SharedSource Code

power-module

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

power-shell-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

4 thoughts on “Sitecore Package Assistant, the items tracker and packages history

  1. 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?

Leave a reply to Jp Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.