New Unlocked Packages
Summary
Since it's been nearly 3 years since the last release, this release is not focused on making any major enhancements or bugfixes to the existing code. Instead, this PR is primarily focused on improving 2 areas:
- Modernizing the repo: this PR includes the setup of dev tools like pre-commit hooks, prettier formatting, PMD scanning with sfdx scanner, document generation, and so on
- Switching to using 2nd Generation Packages (2GP) for distributing the code: to try to make this switch easier for orgs that currently have the repo's code deployed, I don't want to make any drastic functional changes yet. Subsequent releases will focus on enhancements & bugfixes
New Unlocked Packages
Fixes #34 by providing 2 new unlocked packages:
- No namespace - this package can/should be used in orgs that have been previously been deploying the repo's code to their org. When the package is installed, the existing metadata in the org will be absorbed by the package, and orgs will then be able to easily upgrade to future versions of the package
Nebula
namespace - this package can be used in orgs where having a namespace is preferred. All metadata is the same, with the exception that the test suiteQueryAndSearch
is not included in the namespaced package
Code Cleanup & Changes
- Simplified directory structure within nebula-query-and-search directory
- Added & updated project config files (package.json, .forceignore, .gitignore, .prettierrc, etc)
- Bumped all Apex classes to API v57.0 (Spring '23)
- Added
@SuppressWarnings
annotations in Apex test classes. Several of these suppressions will eventually be removed in future releases, once I have time to address some of these issues - but for now, I've suppressed all known warnings - Reformatted all of the Apex code, in a few ways
- Changed casing of class names from
Soql
&Sosl
toSOQL
&SOSL
- Added missing curly braces to any one-liner statements (e.g., statements like
if (someBoolean) return;
now uses curly braces likeif (someBoolean) { return; }
- Ran
prettier
on all files, including changing the tabWidth from 4 to 2 spaces
- Changed casing of class names from
- Added ApexDocs comments to the top of each class + added precommit hooks for auto-generating docs markdown any time an Apex class is committed (using apexdocs)
- I'll add more ApexDocs comments in future releases for methods, enums, and inner classes - for now, I just wanted to get the basics working
- Added Apex test suite
QueryAndSearch
- Made some very minor improvements & clean-up in the test classes
Installation Info
Full Changelog: v3.1.0...v3.1.1
Core Unlocked Package - no namespace
- SF CLI:
sf package install --apex-compile package --wait 20 --security-type AdminsOnly --package 04t5Y000001TsMOQA0
- SFDX CLI:
sfdx package install --wait 20 --security-type AdminsOnly --package 04t5Y000001TsMOQA0
- Sandbox: https://test.salesforce.com/packaging/installPackage.apexp?p0=04t5Y000001TsMOQA0
- Production: https://login.salesforce.com/packaging/installPackage.apexp?p0=04t5Y000001TsMOQA0
Core Unlocked Package - Nebula
namespace
- SF CLI:
sf package install --apex-compile package --wait 20 --security-type AdminsOnly --package 04t5Y000001TsMTQA0
- SFDX CLI:
sfdx package install --wait 20 --security-type AdminsOnly --package 04t5Y000001TsMTQA0
- Sandbox: https://test.salesforce.com/packaging/installPackage.apexp?p0=04t5Y000001TsMTQA0
- Production: https://login.salesforce.com/packaging/installPackage.apexp?p0=04t5Y000001TsMTQA0