diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000000..30f74c5d55 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,73 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, gender identity and expression, level of experience, +nationality, personal appearance, race, religion, or sexual identity and +orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or + advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at [INSERT EMAIL ADDRESS]. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html + +[homepage]: https://www.contributor-covenant.org diff --git a/README.txt b/README.md similarity index 50% rename from README.txt rename to README.md index 1d260c7466..fe5212a303 100644 --- a/README.txt +++ b/README.md @@ -1,155 +1,140 @@ -Configuring and starting Alfresco/Share: ----------------------------------------- +# Records Management: README -- Clone the project (e.g. git clone git@gitlab.alfresco.com:records-management/records-management.git) +## Contributing +Please refer to our [How to contribute](/CONTRIBUTING.md) guide and our [Contributor Covenant Code of Conduct](/CODE_OF_CONDUCT.md). -- Import the project as a maven project +## Configuring and starting Alfresco/Share +* Clone the project (e.g. `git clone git@gitlab.alfresco.com:records-management/records-management.git`) +* Import the project as a maven project +* Start the Alfresco/Share instances with the following commands: -- Start the Alfresco/Share instances with the following commands: + ``` + mvn clean install -Pstart-repo + mvn clean install -Pstart-share + ``` - mvn clean install -Pstart-repo - mvn clean install -Pstart-share - - (these commands work best if run from the specific directories, e.g. start share from + (these commands work best if run from the specific directories, e.g. start share from rm-enterprise/rm-enterprise-share/ or rm-community/rm-community-share/ ) +## Configuring a different DB other than H2 (e.g. MySQL or PostgreSQL) +* Create a file called _local.properties_ under src/main/resources in alfresco-rm-enterprise-repo +* Add the following properties in this new file -Configuring a different DB other than H2 (e.g. MySQL or PostgreSQL): --------------------------------------------------------------------- + ``` + my.db.name -> The name of the database schema + my.db.port -> The port number for your database (default port number for postgres is 5432 and for mysql it is 3306) + ``` +* Run the following commands to start your Alfresco instance: -- Create a file called "local.properties" under src/main/resources in alfresco-rm-enterprise-repo + to start Alfresco (using Postgres): + ``` + mvn clean install -Pstart-repo,use-postgres + ``` -- Add the following properties in this new file - my.db.name -> The name of the database schema - my.db.port -> The port number for your database (default port number for postgres is 5432 and for mysql it is 3306) + to start Alfresco (using MySQL): -- Run the following commands to start your Alfresco instance: + ``` + mvn clean install -Pstart-repo,use-mysql + ``` - to start Alfresco (using Postgres): - mvn clean install -Pstart-repo,use-postgres - - to start Alfresco (using MySQL): - mvn clean install -Pstart-repo,use-mysql - - -Technical documentation: ------------------------- - -Technical documentation is available at rm-community/documentation/README.md and rm-enterprise/documentation/README.md. -This should be particularly useful for anyone wanting to integrate with or extend RM. - - -Running integration test: -------------------------- +## Technical documentation +Technical documentation is available at [rm-community/documentation/README.md](/rm-community/documentation/README.md) and [rm-enterprise/documentation/README.md](/rm-enterprise/documentation/README.md). This should be particularly useful for anyone wanting to integrate with or extend RM. +## Running integration test In order to execute the integration tests run the following command (unit tests will be executed every time before you start Alfresco/Share): +``` mvn clean install -Dskip.integrationtests=false +``` - -Running UI Automation tests: ----------------------------- - +## Running UI Automation tests To run the automated UI tests, change to the rm-automation directory and run: - mvn clean install -Dskip.automationtests=false +``` +mvn clean install -Dskip.automationtests=false +``` Note: due to Selenium Firefox driver changes, the highest supported Firefox version for UI tests is 43.0.4 (with Selenium 2.52.0). It is possible to have multiple versions of Firefox installed onto your workstation (e.g. one for running the UI tests and the other, kept up to date, for everyday browsing) but beware Firefox auto-updates. In this scenario the best approach is to create a non-default profile (default profiles will be shared between your Firefox installations!) for which auto-updates are disabled and forcing the use of this -profile in your tests (-Dwebdriver.firefox.profile="ProfileName"). If your Firefox 43 install isn't in your path, you can use the --Dwebdriver.firefox.profile option set to the full path of its "firefox-bin" executable. +profile in your tests (`-Dwebdriver.firefox.profile="ProfileName"`). If your Firefox 43 install isn't in your path, you can use the +`-Dwebdriver.firefox.profile` option set to the full path of its "firefox-bin" executable. MacOS X Sierra users: if you experience by order of magnitude slower performance when connected to a WiFi network (e.g. office WiFi) add your workstation to your local /etc/hosts file as described on https://github.com/SeleniumHQ/selenium/issues/2824. To use Chrome instead of Firefox: - - copy webdriver.properties from https://github.com/AlfrescoTestAutomation/selenium-grid/tree/master/src/main/resources - 
- put it under src/test/resource in rm-automation-ui project - 
- download the chrome driver from http://chromedriver.storage.googleapis.com/ and extract it - 
- change the following properties in webdriver.properties: webdriver.browser (Chrome) and webdriver.chrome.server.path (path/to/chrome/driver) - 
- run the tests as usual - - -Updating License Headers: -------------------------- +1. copy webdriver.properties from https://github.com/AlfrescoTestAutomation/selenium-grid/tree/master/src/main/resources +2. put it under src/test/resource in rm-automation-ui project +3. download the chrome driver from http://chromedriver.storage.googleapis.com and extract it +4. change the following properties in webdriver.properties: webdriver.browser (Chrome) and webdriver.chrome.server.path (path/to/chrome/driver) +5. run the tests as usual +## Updating License Headers In order to refesh out of date license source headers run the following command: +``` mvn clean install -Dlicense.update.dryrun=false +``` - -Running tests against latest Aikau snapshot: --------------------------------------------- - +## Running tests against latest Aikau snapshot The latest Aikau snapshot can be pulled by running the following command in rm-community: - mvn clean install -DskipTests -Dalfresco.aikau.version=LATEST -U +``` +mvn clean install -DskipTests -Dalfresco.aikau.version=LATEST -U +``` Thereafter start the Share instance and run automation tests as described above. - -Configuring Outlook Integration: -------------------------------- - +## Configuring Outlook Integration To download and run RM with the Outlook Integration AMPs installed on the repo and Share use the following commands: - mvn clean install -Pstart-repo,outlook-integration - mvn clean install -Pstart-share,outlook-integration +``` +mvn clean install -Pstart-repo,outlook-integration +mvn clean install -Pstart-share,outlook-integration +``` -Follow these instructions install licence and Outlook plugin: +Follow these instructions to install licence and Outlook plugin: - - http://docs.alfresco.com/outlook2.1/tasks/Outlook-license.html - - http://docs.alfresco.com/outlook2.1/tasks/Outlook-install_v2.html - - -SNAPSHOT dependencies: ----------------------- +* http://docs.alfresco.com/outlook2.1/tasks/Outlook-license.html +* http://docs.alfresco.com/outlook2.1/tasks/Outlook-install_v2.html +## SNAPSHOT dependencies If you're building Enterprise RM, the base project (Community) is pulled in via a snapshot dependency configured in maven. This dependency will either be loaded from your local .m2 cache or from Nexus if the version in your .m2 doesn't exist or is old (Old in maven terms is anything over 24hrs old). If maven fetches it from Nexus, your code it's unlikely to be the correct version. You want to always use the version in your local cache - this means either doing a daily build at the root project level that pushes a new copy of the correct version into your cache, or alternatively you could run mvn with the ---no-snapshot-dependency (or -nsu) option, which won't try to download a newer version. - - -Code Formatting: ----------------- +`--no-snapshot-dependency` (or -nsu) option, which won't try to download a newer version. +## Code Formatting This project follows the usual Alfresco Coding Standards. If you use Eclipse or IntelliJ, there are settings inside the ide-config directory for you to import. - -Surf build errors: ------------------- - +## Surf build errors If you get: +``` [ERROR] Failed to execute goal on project alfresco-rm-community-share: Could not resolve dependencies for project org.alfresco:alfresco-rm-community-share:amp:2.6-SNAPSHOT: Failed to collect dependencies at org.alfresco.surf:spring-surf-api:jar:6.3 -> org.alfresco.surf:spring-surf:jar:${dependency.surf.version}: Failed to read artifact descriptor for org.alfresco.surf:spring-surf:jar:${dependency.surf.version}: Could not transfer artifact org.alfresco.surf:spring-surf:pom:${dependency.surf.version} from/to alfresco-internal (https://artifacts.alfresco.com/nexus/content/groups/private): Not authorized , ReasonPhrase:Unauthorized. -> [Help 1] +``` -then please re-run with -Ddependency.surf.version=6.3 - - -Install lombok plugin for IDEs: -------------------------------- +then please re-run with `-Ddependency.surf.version=6.3` +## Install lombok plugin for IDEs To allow automation and benchmark projects to be built within an IDE the lombok 'plugin' needs to be installed. +Execute lombok.jar (doubleclick it, or run `java -jar lombok.jar`). Follow the instructions. -Execute lombok.jar (doubleclick it, or run java -jar lombok.jar). Follow instructions. - - -Use Solr 6 with Alfresco 5.2.x: -------------------------------- -In alfresco-global.properties (depending on the RM edition /records-management/rm-community/rm-community-repo/src/test/properties/local or /records-management/rm-enterprise/rm-enterprise-repo/src/test/properties/local) +## Use Solr 6 with Alfresco 5.2.x +In alfresco-global.properties (depending on the RM edition `/records-management/rm-community/rm-community-repo/src/test/properties/local` or `/records-management/rm-enterprise/rm-enterprise-repo/src/test/properties/local`) change the value for "index.subsystem.name" from "solr4" to "solr6". Add also the following property "solr.port=8983". Download the latest Alfresco Search Services from -https://nexus.alfresco.com/nexus/#nexus-search;gav~~alfresco-search-services~~~ +[https://nexus.alfresco.com/nexus/#nexus-search;gav\~\~alfresco-search-services\~\~\~](https://nexus.alfresco.com/nexus/#nexus-search;gav~~alfresco-search-services~~~) Currently it's 1.0.0 (alfresco-search-services-1.0.0.zip) Unzip it and change to the "solr" folder within it. Start the Solr server using the following command: +``` solr start -a "-Dcreate.alfresco.defaults=alfresco,archive" - +``` Start your repository