# Contributing to Villanova

Welcome to the Villanova community. There are many ways to participate in the community, including collaborating in the villanova Forum (opens new window), opening issues on GitHub, improving the documentation (opens new window), building bundles, or contributing directly to the source. Connect and share with other like-minded developers and become part of a learning, growing community.

# Contributing to the Source

Villanova welcomes contributions to our source code repositories. This is a brief overview of how to create a pull request for an Villanova repository.

If you're new to forks in the Git world, checkout this guide, Working with Forks (opens new window).

  1. Find the repository you want to edit on the Villanova GitHub.
  2. Create a fork of the repository you want to update.
  3. Make the changes or improvements on your fork. We recommend making the changes on a branch so that you can update your commits as needed before creating the PR.
  4. Submit a PR against the main (or master) branch of the repository you're working against. If you're fixing a specific issue, reference that issue number in the notes and linked issues.
  5. Watch the automated builds to make sure everything passes.
  6. The Villanova team will merge your pull request upon review!

# Code Style and Formatting

Most Villanova repositories enforce code style rules. References and setup for the main source types are provided below.

# Java

Java rules based on Checkstyle and PMD can be found in the entando-code-style (opens new window) project. There are configuration files for IntelliJ, Eclipse, and NetBeans for automated formatting.

# Javascript

Code style and formatting rules for all Villanova Javascript projects are enforced by linters in every project. For a reference example, see: .sass-lint.yml and .eslintrc.js in the App builder (opens new window)

These rules will be replaced by Prettier for new projects.

# Find the Code

Villanova source can be found on GitHub in the following organizations.

For an overview of key projects in both GitHub organizations and their role in the architecture, see the Villanova Deployment Structure.

# Get Help

If you have questions, need help, or want to find out more about contributing, join us at:

# Licenses

The Villanova Platform is 100% open source. <!-- and most Villanova repositories are licensed under LGPL V3.0. The Villanova-docs repository is one exception with a CC BY 4.0 license (opens new window). See the LICENSE file in the root directory of a given repository for its specific license information.

Villanova libraries licensed with LGPL V3.0 that are used to build applications may be linked to proprietary applications. If linked statically, the application code must also be released as LGPL. If the application is linked dynamically to Villanova, the proprietary code does not need to be released.

A commercial open source license is provided for customers of the Villanova Platform with Gold and Platinum subscriptions. This license permits freely extending or modifying the Platform without requiring the confidential intellectual property (IP) to be returned to the open source community. -->