docs: protected CmsWorkflowResponse actionRelease(CmsObject userCms, List<CmsResource> resources) throws CmsException {
  
          checkNewParentsInList(userCms, resources);
          String projectName = generateProjectName(userCms);
          String projectDescription = generateProjectDescription(userCms);
          CmsObject offlineAdminCms = OpenCms.initCmsObject(m_adminCms);
          offlineAdminCms.getRequestContext().setCurrentProject(userCms.getRequestContext().getCurrentProject());
          String managerGroup = getWorkflowProjectManagerGroup();
          String userGroup = getWorkflowProjectUserGroup();
          CmsProject workflowProject = m_adminCms.createProject(
              projectName,
              projectDescription,
              userGroup,
              managerGroup,
              CmsProject.PROJECT_TYPE_WORKFLOW);
          CmsObject newProjectCms = OpenCms.initCmsObject(offlineAdminCms);
          newProjectCms.getRequestContext().setCurrentProject(workflowProject);
          newProjectCms.getRequestContext().setSiteRoot("");
          newProjectCms.copyResourceToProject("/");
          CmsUser admin = offlineAdminCms.getRequestContext().getCurrentUser();
          clearLocks(userCms.getRequestContext().getCurrentProject(), resources);
          for (CmsResource resource : resources) {
              CmsLock lock = offlineAdminCms.getLock(resource);
              if (lock.isUnlocked()) {
                  offlineAdminCms.lockResource(resource);
              } else if (!lock.isOwnedBy(admin)) {
                  offlineAdminCms.changeLock(resource);
              }
              offlineAdminCms.writeProjectLastModified(resource, workflowProject);
              offlineAdminCms.unlockResource(resource);
          }
          for (CmsUser user : getNotificationMailRecipients()) {
              sendNotification(userCms, user, workflowProject, resources);
          }
          return new CmsWorkflowResponse(
              true,
              "",
              new ArrayList<CmsPublishResource>(),
              new ArrayList<CmsWorkflowAction>(),
              workflowProject.getUuid());
      }