Let's say I have created a major package 1.2.0 and have added some new functionality with new components. I also have a package with version 1.1.6 without the new components and functionality. For some reason now if I want to create a patch (without new components and code) for 1.1 package that is 1.1.7 is that doable ? IS that allowed in Salesforce ? Can I use the 1.1 patch development org to create a new patch ?
Patch versions are created in a copy of the original packaging org. See e.g. Working with Patch Versions.
The changes you can make in a patch are quite limited e.g. fixing some lines of code in an existing Apex class. In general you cannot add new components. See Create and Upload Patches that lists:
- You can’t add package components.
- You can’t delete existing package components.
- API and dynamic Apex access controls can’t change for the package.
- No deprecation of any Apex code.
- You can’t add new Apex class relationships, such as extends.
- You can’t add Apex access modifiers, such as virtual or global.
- You can’t add new web services.
- You can’t add feature dependencies.
One way to think about this is that your 1.1.6 package (by Salesforce's design) must remain upgradeable to 1.2.0, and if you add a new component such as an SObject field that isn't present in 1.2.0 then the upgrade won't be possible (as API would effectively be being removed).