From a0d911105b014911eacd31909763b7d6a6435957 Mon Sep 17 00:00:00 2001 From: praneesha Date: Wed, 12 Feb 2020 11:17:12 +0530 Subject: [PATCH 01/23] Link Contribtuion Guide in Bio --- CONTRIBUTING.md | 194 +----------------------------------------------- 1 file changed, 1 insertion(+), 193 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 72638743a5f8..6036beae952d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,195 +1,3 @@ # Contributing to Ballerina -Ballerina is an open source programming language and platform for cloud-era application programmers to easily write software that just works. - -We are an open-source project under Apache license and the work of hundreds of contributors. - -We appreciate your help! - -## Getting Started - -* Download Ballerina at [https://ballerina.io](https://ballerina.io) and go through the getting started tutorials at [https://ballerina.io/learn](https://ballerina.io/learn) -* Read our [Code of Conduct](CODE_OF_CONDUCT.md) -* Join the conversations at: - * [StackOverflow](https://stackoverflow.com/questions/tagged/ballerina): to get help with Ballerina; use Ballerina tag for any your questions there, - * [Slack](https://ballerinalang.slack.com/): for real-time discussions with the team and community, - * [Ballerina-Dev Google Group](https://groups.google.com/forum/#!forum/ballerina-dev): developer team mailing list to discuss Ballerina roadmap, features and issues on the works, and so on, - * [GitHub](https://github.com/ballerina-platform/ballerina-lang/issues): file issues, comment on other issues, send your pull requests. -* Submit issues: - * Found a security flaw? Please email security@ballerina.io - * Submitting a bug is just as important as contributing code. Go to the Issues tab of the GitHub repo and click the New Issue button to file a bug report. -* Start with easy fix issues: - * Browse issues labeled easyfix, - * Use comments on the issue itself to indicate that you will be working on it and get guidance and help. - -## Communicating with the team - -[Ballerina-Dev Google Group](https://groups.google.com/forum/#!forum/ballerina-dev) is the main Ballerina project discussion forum. - -[StackOverflow](https://stackoverflow.com/questions/tagged/ballerina) is used for support, [Slack](https://ballerinalang.slack.com/) for real-time communications, and [GitHub](https://github.com/ballerina-platform/ballerina-lang/issues) for issues and code repositories. - -## Filing issues - -If you are unsure whether you have found a bug, please consider searching existing issues in github and asking in Ballerina-Dev Google Group. - -> IMPORTANT: Sensitive security-related issues should be reported to [security@ballerina.io](security@ballerina.io). For details, see the [security policy](https://ballerina.io/security/). - -To file non-security issues: - -1. Click the **Issues** tab in the github repository, - -2. Click the **New Issue** button, - -3. Fill out all sections in the issue template and submit. - -## Contributing site changes, docs, and examples - -## Contributing code - -### Accepting Contributor License Agreement (CLA) - -Before you submit your first contribution please accept our Contributor License Agreement (CLA) here. When you send your first Pull Request (PR), GitHub will ask you to accept the CLA. - -There is no need to do this before you send your first PR. - -Subsequent PRs will not require CLA acceptance. - -If for some (unlikely) reason at any time CLA changes, you will get presented with the new CLA text on your first PR after the change. - -### Obtaining the Source Code and Building the Project - -#### Build Prerequisites - -**Prerequisite 1** - Install a Java Development Kit (JDK) version 8 - -Building Ballerina requires a Java SE Development Kit (JDK) version 8 to be installed. You can download one from one of the following locations: - -* [http://www.oracle.com/technetwork/java/javase/downloads/index.html](http://www.oracle.com/technetwork/java/javase/downloads/index.html) -* [http://openjdk.java.net/install/index.html](http://openjdk.java.net/install/index.html) - -> NOTE: Set an environment variable `JAVA_HOME` to the path name of the directory into which you installed the JDK release. - -**Prerequisite 2** - Node (v8.9.x or latest LTS release) + npm (v5.6.0 or later) - -**Prerequisite 3** - Docker - -#### Building from the source - -Clone this repository using the following command. - -``` -git clone --recursive https://github.com/ballerina-platform/ballerina-lang.git -``` - -If you have forked the repository to your github account then use the following command replacing with your git username. - -```` -git clone --recursive https://github.com//ballerina-lang.git -```` - -If you download the sources, you need to update the git submodules using the following command. - -``` -git submodule update --init -``` - -Run the gradle command `./gradlew clean build` from the Ballerina root directory: - -Extract the Ballerina distribution created at `distribution/zip/ballerina/target/ballerina--SNAPSHOT.zip`. The `zip/ballerina` directory contains the runtime only. `zip/ballerina-tools/` contains the runtime and tools (e.g., Ballerina Composer). - -Note: It is possible to face an IOException error stating "Too many open files". This is due to the default number of possible open files being set to a lower number on your operating system than required for Ballerina to be compiled. You may have to increase the number of open files/file descriptors (FD) on your operating system. This is OS dependent and you can search the internet on how to do this for your operating system (Windows/OSX/Linux). You could update the maximum number of open files to 1000000 (or higher). - -### Setting up your development environment - -#### Setup IntelliJ IDEA - -##### Importing a Ballerina Project - -Import the Ballerina project to IntelliJ IDEA similar to any other Gradle project. - -* Navigate to `File | Open` menu. -* Browse the filesystem and Select Ballerina Project's root directory. - * If prompted to import Gradle project select `Auto import`. - * Set Project SDK as Java 1.8 - -##### Useful IDEA Plugins - -* ANTLR 4 - https://plugins.jetbrains.com/plugin/7358-antlr-v4-grammar-plugin -* Ballerina - https://plugins.jetbrains.com/plugin/9520-ballerina (Need IDEA 2016.3 or newer) - -#### Setup Eclipse - -##### Importing a Ballerina Project - -All Ballerina repositories are developed as Maven or Gradle projects. So you can import any Ballerina project to Eclipse similar to any Maven or Gradle project. - -* Navigate to **File** → **Import..** -* Select **Existing Maven Projects** under **Maven** -* Next, browse the file system, and open the Maven module. - -##### Installing ANTLR4 plugin -If you are working with the grammar, it would be useful to have ANTLR 4 IDE plugin installed for Eclipse. To install this using Eclipse marketplace: - -1. Navigate to **Help** → **Eclipse Marketplace** - -2. Search for **antlr4** - -3. Install ANTLR 4 IDE plugin (which supports antlr 4.x version). - -To open the plugin views: - -1. Navigate to **Window** → **Show View** → **Other**. - -2. Under **ANTLR4** section, select and enable **Parse Tree** view and **Syntax Diagram** views. - -### Working With the Ballerina Grammar - -Ballerina grammar has been implemented using ANTLR4. It is recommended to have some basic understanding on ANTLR4 grammar syntax and concepts, before working with the Ballerina grammar. “Parr, Terence (January 15, 2013), The Definitive ANTLR 4 Reference” is a good reference to get started with. - -Ballerina grammar can be found under [`/compiler/ballerina-lang/src/main/resources/grammar/`](https://github.com/ballerina-platform/ballerina-lang/tree/master/compiler/ballerina-lang/src/main/resources/grammar) in the Ballerina repository. It consists of two files: - -* BallerinaLexer.g4 - Contains the lexer rules for Ballerina grammar. Lexer is responsible for tokenizing an input Ballerina source code. -* BallerinaParser.g4 - Contains the parser rules. Parser listens to the token stream generated by the lexer. High level grammar productions/abstractions are defined in the parser using those tokens. - -> TIP: If you want to check and validate a grammar rule you just wrote, you can use the ANTLR 4 plugin of your IDE. See Setting up your development environment section for more details. - -#### Generating Parsers - -Once a change is done to any of the grammar files, the lexer and the parser need to be re-generated. To generate the lexer and the parser, first download the `antlr-complete-4.5.3.jar` file. Then navigate to `/compiler/ballerina-lang/src/main/resources/grammar/`, and execute the following command: -``` -java -jar /antlr-4.5.3-complete.jar *.g4 -package org.wso2.ballerinalang.compiler.parser.antlr4 -o ../../java/org/wso2/ballerinalang/compiler/parser/antlr4/ -``` - -The above command will autogenerate some Java classes. Out of the autogenerated classes, `BallerinaParserBaseListener.java` in particular is important, as the Ballerina AST builder is written on top of it. Thus, if any new rules are added to the BallerinaParser.g4, above command will generate new methods in the `BallerinaParserBaseListener.java`, and you need to override those newly added methods inside `BLangParserListener.java` accordingly. - -### Ballerina Compiler -https://medium.com/@sameera.jayasoma/ballerina-compiler-design-3406acc2476c - -### Creating a Patch for Review - -#### Fork the Repo -#### Make Your Changes -#### Add Unit Tests - -Build process automatically runs all the tests. - -#### Commit to Your Fork - -We follow these commit message requirements: - -* Separate subject from body with a blank line -* Limit the subject line to 50 characters -* Capitalize the subject line -* Do not end the subject line with a period -* Use the imperative mood in the subject line -* Wrap the body at 72 characters -* Use the body to explain what and why vs. how - -Please find details at: [https://chris.beams.io/posts/git-commit/](https://chris.beams.io/posts/git-commit/) - -## Proposing Changes To Ballerina - -Start with the discussion in the Ballerina-Dev Google Group. - -Once there is enough consensus around the proposal, you will likely be asked to file an Issue in GitHub and label it as Proposal, to continue the discussion on details there. - +For information on contributing to Ballerina, go to the [Ballerina Contribution Guide](https://ballerina.io/contribution-guide/). \ No newline at end of file From 38b2e1aacfa53c93f66d9b840f2d3d3dc33b2edc Mon Sep 17 00:00:00 2001 From: praneesha Date: Wed, 12 Feb 2020 11:28:42 +0530 Subject: [PATCH 02/23] Change link to B.io in the README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b3c05389f4f1..ae1a17fa8e15 100644 --- a/README.md +++ b/README.md @@ -76,7 +76,7 @@ Report an issue in the relevant repo out of the GitHub repos listed below. ## Contributing to Ballerina -As an open source project, Ballerina welcomes contributions from the community. To start contributing, read these [contribution guidelines](https://github.com/ballerina-platform/ballerina-lang/blob/master/CONTRIBUTING.md) for information on how you should go about contributing to our project. +As an open source project, Ballerina welcomes contributions from the community. To start contributing, read these [contribution guidelines](https://ballerina.io/contribution-guide/) for information on how you should go about contributing to our project. Check the issue tracker for open issues that interest you. We look forward to receiving your contributions. From 88e9976b6994ae074491092e1f6ff4037d0fd939 Mon Sep 17 00:00:00 2001 From: praneesha Date: Thu, 13 Feb 2020 15:23:09 +0530 Subject: [PATCH 03/23] Adding back the Contributing.md content --- CONTRIBUTING.md | 136 +++++++++++++++++++++++++++++++++++++++++++++++- README.md | 2 +- 2 files changed, 136 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6036beae952d..02d36a21d4d8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,3 +1,137 @@ +--- +layout: ballerina-inner-page +title: Contributing to Ballerina +permalink: /contribution-guide +--- + # Contributing to Ballerina -For information on contributing to Ballerina, go to the [Ballerina Contribution Guide](https://ballerina.io/contribution-guide/). \ No newline at end of file +Ballerina is an open source programming language and platform for cloud-era application programmers to easily write software. It is licensed under the [Apache license](https://www.apache.org/licenses/LICENSE-2.0) and is nurtured by all the contributors of the Ballerina community. + +We appreciate your help! + +- [Get started](#get-started) +- [Set up the Prerequisites](#set-up-the-prerequisites) +- [Obtain the source code](#obtain-the-source-code) +- [Build the project](#build-the-project) +- [Set up the development environment](#set-up-the-development-environment) + - [Set up the Ballerina plugin](#set-up-the-ballerina-plugin) + - [Set up the ANTLR4 plugin](#set-up-the-antlr4-plugin) +- [Contribute to Ballerina grammar](#contribute-to-ballerina-grammar) +- [Submit your contribution](#submit-your-contribution) +- [Accept the Contributor License Agreement](#accept-the-contributor-license-agreement) +- [Propose changes to Ballerina](#propose-changes-to-ballerina) + +## Get started + +- Join the conversations at: + + + +- Submitting a bug is just as important as contributing to code. Report an issue in the relevant repo out of the GitHub repos listed below. + + >**Tip:** If you are unsure whether you have found a bug, search existing issues in the corresponding repo on GitHub and raise it in the [Ballerina-Dev Google Group](#https://groups.google.com/forum/#!forum/ballerina-dev). + - Compiler, runtime, standard library, or tooling: ballerina-lang repo + - Language specification: ballerina-spec repo + - Website: ballerina-dev-website repo + - Security flaw: send an email to security@ballerina.io. For details, see the security policy. + +- Start with GitHub issues that can be fixed easily: + - Browse issues labeled "good first issue" in the ballerina-lang repo. + - Use comments on the issue itself to indicate that you will be working on it and get guidance and help. + +## Set up the prerequisites +1. Download [Ballerina](https://ballerina.io) and go through the [learning resources](https://ballerina.io/learn). +2. Read the Ballerina Code of Conduct. + +## Build the source code + +For instructions, see Installing from source. + +## Set up the development environment + +See the below sections to set up the required plugins in your preferred IDEs/Editors. + +### Set up the Ballerina plugin + +Currently, Ballerina has the below plugins developed for IntelliJ IDEA and VS Code. +- [Ballerina plugin for IntelliJ IDEA](https://plugins.jetbrains.com/plugin/9520-ballerina) + + For installation instructions, see [Ballerina IntelliJ Plugin Documentation](https://ballerina.io/learn/vscode-plugin). +- [Ballerina plugin for VS Code](https://plugins.jetbrains.com/plugin/9520-ballerina) + + For installation instructions, see [Ballerina VS Code Documentation](https://ballerina.io/learn/vscode-plugin). + +### Set up the ANTLR4 plugin + +This plugin will be useful to check and validate a [grammar rule](#contributing-to-ballerina-grammar) you wrote. For instructions on installing the ANTLR4 plugin based on your preferred IDE/Editor (which supports antlr 4.x version), go to [ANTLR Documentation](https://www.antlr.org/tools.html). + +## Contribute to Ballerina grammar + +Ballerina grammar has been implemented using ANTLR plugin version 4.5.3. To get a basic understanding of ANTLR grammar syntax and concepts before working with Ballerina grammar, go to [Parr, Terence (January 15, 2013), The Definitive ANTLR 4 Reference](https://www.oreilly.com/library/view/the-definitive-antlr/9781941222621/). + +[Ballerina grammar](https://github.com/ballerina-platform/ballerina-lang/tree/master/compiler/ballerina-lang/src/main/resources/grammar) consists of two files: + +- **BallerinaLexer.g4:** contains the lexer rules for Ballerina grammar. Lexer is responsible for tokenizing an input Ballerina source code. +- **BallerinaParser.g4:** contains the parser rules. Parser listens to the token stream generated by the lexer. High level grammar productions/abstractions are defined in the parser using those tokens. + +Once a change is done to any of the grammar files, the lexer and the parser need to be re-generated. To generate the lexer and the parser, navigate to the `/compiler/ballerina-lang/src/main/resources/grammar/` directory, and execute the below command. + +>**Tip:** Download the [antlr-complete-4.5.3.jar](https://jar-download.com/artifacts/org.antlr/antlr4/4.5.3/source-code) file and replace `` in the below command with the location in which you saved it. + +```bash +java -jar /antlr-4.5.3-complete.jar *.g4 -package org.wso2.ballerinalang.compiler.parser.antlr4 -o /compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/parser/antlr4/ +``` + +**Info:** The above command will autogenerate some Java classes. The Ballerina AST builder is written on top of the auto-generated `BallerinaParserBaseListener.java` class. Thus, if any new rules are added to the `BallerinaParser.g4`, above command will generate new methods in the `BallerinaParserBaseListener.java` and you need to override those newly-added methods inside the `BLangParserListener.java` accordingly. + +For more information about the Ballerina compiler, go to [Ballerina Compiler — Design](https://medium.com/@sameerajayasoma/ballerina-compiler-design-3406acc2476c?). + +## Submit your contribution + +1. Do your changes in the source code. +2. Add unit tests accordingly. (The build process will automatically execute all the tests.) +3. Commit the changes to your fork and push them to the corresponding original repo by sending a Pull Request (PR). + + >**Tip:** Follow these commit message requirements: + + - Separate subject from body with a blank line + - Limit the subject line to 50 characters + - Capitalize the subject line + - Do not end the subject line with a period + - Use the imperative mood in the subject line + - Wrap the body at 72 characters + - Use the body to explain what and why vs. how + +For more information, go to [How to Write a Git Commit Message](https://chris.beams.io/posts/git-commit/). + +## Accept the Contributor License Agreement + +You need to Accept the Ballerina Contributor License Agreement (CLA) here when prompted by GitHub while sending your first Pull Request (PR). Subsequent PRs will not require CLA acceptance. + +If the CLA gets changed for some (unlikely) reason, you will be presented with the new CLA text when sending your first PR after the change. + +## Propose changes to Ballerina + +Start the discussion on the changes you propose in the [Ballerina-Dev Google Group](https://groups.google.com/forum/#!forum/ballerina-dev). Once there is enough consensus around the proposal, you will likely be asked to file an issue on GitHub and label it as 'Proposal' to continue a detailed discussion there. diff --git a/README.md b/README.md index ae1a17fa8e15..b3c05389f4f1 100644 --- a/README.md +++ b/README.md @@ -76,7 +76,7 @@ Report an issue in the relevant repo out of the GitHub repos listed below. ## Contributing to Ballerina -As an open source project, Ballerina welcomes contributions from the community. To start contributing, read these [contribution guidelines](https://ballerina.io/contribution-guide/) for information on how you should go about contributing to our project. +As an open source project, Ballerina welcomes contributions from the community. To start contributing, read these [contribution guidelines](https://github.com/ballerina-platform/ballerina-lang/blob/master/CONTRIBUTING.md) for information on how you should go about contributing to our project. Check the issue tracker for open issues that interest you. We look forward to receiving your contributions. From 80183ea820d3c059f897650ae88285024428703a Mon Sep 17 00:00:00 2001 From: praneesha Date: Fri, 14 Feb 2020 12:21:03 +0530 Subject: [PATCH 04/23] Address review comments --- CONTRIBUTING.md | 10 ++-------- SECURITY.md | 6 ------ 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 02d36a21d4d8..729034cbf495 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,9 +1,3 @@ ---- -layout: ballerina-inner-page -title: Contributing to Ballerina -permalink: /contribution-guide ---- - # Contributing to Ballerina Ballerina is an open source programming language and platform for cloud-era application programmers to easily write software. It is licensed under the [Apache license](https://www.apache.org/licenses/LICENSE-2.0) and is nurtured by all the contributors of the Ballerina community. @@ -78,8 +72,8 @@ See the below sections to set up the required plugins in your preferred IDEs/Edi Currently, Ballerina has the below plugins developed for IntelliJ IDEA and VS Code. - [Ballerina plugin for IntelliJ IDEA](https://plugins.jetbrains.com/plugin/9520-ballerina) - For installation instructions, see [Ballerina IntelliJ Plugin Documentation](https://ballerina.io/learn/vscode-plugin). -- [Ballerina plugin for VS Code](https://plugins.jetbrains.com/plugin/9520-ballerina) + For installation instructions, see [Ballerina IntelliJ Plugin Documentation](https://ballerina.io/learn/intellij-plugin/). +- [Ballerina plugin for VS Code](https://marketplace.visualstudio.com/items?itemName=ballerina.ballerina) For installation instructions, see [Ballerina VS Code Documentation](https://ballerina.io/learn/vscode-plugin). diff --git a/SECURITY.md b/SECURITY.md index af9267f4c48b..a00af47f33ba 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -1,9 +1,3 @@ ---- -layout: ballerina-inner-page -title: Reporting a Security Vulnerability -permalink: /security/ ---- - # Security Policy Ballerina project maintainers take security issues very seriously and all the vulnerability reports are treated with the highest priority and confidentiality. From dcfb9467a32105decfcce2e5e851da3075aca7c1 Mon Sep 17 00:00:00 2001 From: praneesha Date: Fri, 14 Feb 2020 12:50:02 +0530 Subject: [PATCH 05/23] Add community icons --- CONTRIBUTING.md | 26 ++++---------------------- docs/images/google-groups.png | Bin 0 -> 6452 bytes docs/images/slack.png | Bin 0 -> 6144 bytes docs/images/stack-overflow.png | Bin 0 -> 8325 bytes docs/images/twitter.png | Bin 0 -> 6408 bytes 5 files changed, 4 insertions(+), 22 deletions(-) create mode 100644 docs/images/google-groups.png create mode 100644 docs/images/slack.png create mode 100644 docs/images/stack-overflow.png create mode 100644 docs/images/twitter.png diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 729034cbf495..56a313d9194b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -20,28 +20,10 @@ We appreciate your help! - Join the conversations at: - + + + + - Submitting a bug is just as important as contributing to code. Report an issue in the relevant repo out of the GitHub repos listed below. diff --git a/docs/images/google-groups.png b/docs/images/google-groups.png new file mode 100644 index 0000000000000000000000000000000000000000..700038750f87ee8f561a4cb28e3a0a86d7a8d4d1 GIT binary patch literal 6452 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 literal 0 HcmV?d00001 diff --git a/docs/images/slack.png b/docs/images/slack.png new file mode 100644 index 0000000000000000000000000000000000000000..b7ff477ed47490f0de72e73b2814db0942ddd508 GIT binary patch literal 6144 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 literal 0 HcmV?d00001 diff --git a/docs/images/stack-overflow.png b/docs/images/stack-overflow.png new file mode 100644 index 0000000000000000000000000000000000000000..c5c5d46b0d26ac63bb148ffe566d85e0572b15d7 GIT binary patch literal 8325 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 Date: Fri, 14 Feb 2020 12:54:42 +0530 Subject: [PATCH 06/23] Fix the dimensions of the community icons --- CONTRIBUTING.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 56a313d9194b..48772f81bd32 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -20,10 +20,10 @@ We appreciate your help! - Join the conversations at: - - - - + + + + - Submitting a bug is just as important as contributing to code. Report an issue in the relevant repo out of the GitHub repos listed below. From 1fb91e6241487bb3fed1197749ff44f5ea281223 Mon Sep 17 00:00:00 2001 From: praneesha Date: Fri, 14 Feb 2020 13:07:42 +0530 Subject: [PATCH 07/23] Remove community icons --- CONTRIBUTING.md | 8 ++++---- docs/images/google-groups.png | Bin 6452 -> 0 bytes docs/images/slack.png | Bin 6144 -> 0 bytes docs/images/stack-overflow.png | Bin 8325 -> 0 bytes docs/images/twitter.png | Bin 6408 -> 0 bytes 5 files changed, 4 insertions(+), 4 deletions(-) delete mode 100644 docs/images/google-groups.png delete mode 100644 docs/images/slack.png delete mode 100644 docs/images/stack-overflow.png delete mode 100644 docs/images/twitter.png diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 48772f81bd32..710e663455c1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -20,10 +20,10 @@ We appreciate your help! - Join the conversations at: - - - - + - [StackOverflow](https://stackoverflow.com/questions/tagged/ballerina): to get help with Ballerina (use the Ballerina tag for any of your questions.) + - [Slack](https://ballerinalang.slack.com/): for real-time discussions with the team and community + - [Ballerina-Dev Google Group](https://groups.google.com/forum/#!forum/ballerina-dev): (developer team mailing list) to discuss Ballerina roadmap, features, and related issues + - [GitHub](https://github.com/ballerina-platform/ballerina-lang/issues): to file issues, comment on other issues, send your pull requests. - Submitting a bug is just as important as contributing to code. Report an issue in the relevant repo out of the GitHub repos listed below. diff --git a/docs/images/google-groups.png b/docs/images/google-groups.png deleted file mode 100644 index 700038750f87ee8f561a4cb28e3a0a86d7a8d4d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6452 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 diff --git a/docs/images/slack.png b/docs/images/slack.png deleted file mode 100644 index b7ff477ed47490f0de72e73b2814db0942ddd508..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6144 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 diff --git a/docs/images/stack-overflow.png b/docs/images/stack-overflow.png deleted file mode 100644 index c5c5d46b0d26ac63bb148ffe566d85e0572b15d7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8325 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 Date: Fri, 14 Feb 2020 13:13:16 +0530 Subject: [PATCH 08/23] Add Twitter to the community options --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 710e663455c1..f490173f28b4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -23,7 +23,7 @@ We appreciate your help! - [StackOverflow](https://stackoverflow.com/questions/tagged/ballerina): to get help with Ballerina (use the Ballerina tag for any of your questions.) - [Slack](https://ballerinalang.slack.com/): for real-time discussions with the team and community - [Ballerina-Dev Google Group](https://groups.google.com/forum/#!forum/ballerina-dev): (developer team mailing list) to discuss Ballerina roadmap, features, and related issues - - [GitHub](https://github.com/ballerina-platform/ballerina-lang/issues): to file issues, comment on other issues, send your pull requests. + - [Twitter](https://twitter.com/ballerinalang): to tweet about Ballerina (use the “#ballerinalang” hashtag). - Submitting a bug is just as important as contributing to code. Report an issue in the relevant repo out of the GitHub repos listed below. From 3d255c8f1e193552af00040ef403456ef790ead7 Mon Sep 17 00:00:00 2001 From: praneesha Date: Fri, 14 Feb 2020 13:22:45 +0530 Subject: [PATCH 09/23] Add an expand for contributing to Ballerina grammar --- CONTRIBUTING.md | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f490173f28b4..809f4334260a 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -11,7 +11,6 @@ We appreciate your help! - [Set up the development environment](#set-up-the-development-environment) - [Set up the Ballerina plugin](#set-up-the-ballerina-plugin) - [Set up the ANTLR4 plugin](#set-up-the-antlr4-plugin) -- [Contribute to Ballerina grammar](#contribute-to-ballerina-grammar) - [Submit your contribution](#submit-your-contribution) - [Accept the Contributor License Agreement](#accept-the-contributor-license-agreement) - [Propose changes to Ballerina](#propose-changes-to-ballerina) @@ -49,7 +48,7 @@ For instructions, see If you are contributing to Ballerina Grammar; Ballerina grammar has been implemented using ANTLR plugin version 4.5.3. To get a basic understanding of ANTLR grammar syntax and concepts before working with Ballerina grammar, go to [Parr, Terence (January 15, 2013), The Definitive ANTLR 4 Reference](https://www.oreilly.com/library/view/the-definitive-antlr/9781941222621/). From 98474ebc97de958075abaaff97cda470a9e6bf31 Mon Sep 17 00:00:00 2001 From: praneesha Date: Fri, 14 Feb 2020 13:30:00 +0530 Subject: [PATCH 11/23] Fix the border --- CONTRIBUTING.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 516008be6cae..19e3efc4ba5d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -66,8 +66,8 @@ This plugin will be useful to check and validate a [grammar rule](#contributing- 1. Do your changes in the source code. -
- If you are contributing to Ballerina Grammar; +
+ If you are contributing to Ballerina Grammar; Ballerina grammar has been implemented using ANTLR plugin version 4.5.3. To get a basic understanding of ANTLR grammar syntax and concepts before working with Ballerina grammar, go to [Parr, Terence (January 15, 2013), The Definitive ANTLR 4 Reference](https://www.oreilly.com/library/view/the-definitive-antlr/9781941222621/). From 940e0f1f7e7afb71033987054d2e2804e38ad3fd Mon Sep 17 00:00:00 2001 From: praneesha Date: Fri, 14 Feb 2020 16:05:31 +0530 Subject: [PATCH 12/23] Address more review comments --- CONTRIBUTING.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 19e3efc4ba5d..9a3d82b2536e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -19,10 +19,10 @@ We appreciate your help! - Join the conversations at: - - [StackOverflow](https://stackoverflow.com/questions/tagged/ballerina): to get help with Ballerina (use the Ballerina tag for any of your questions.) - - [Slack](https://ballerinalang.slack.com/): for real-time discussions with the team and community + - [StackOverflow](https://stackoverflow.com/questions/tagged/ballerina): to get help with Ballerina (use the Ballerina tag for any of your questions) + - [Slack](https://ballerina.io/community/slack/): for real-time discussions with the team and community - [Ballerina-Dev Google Group](https://groups.google.com/forum/#!forum/ballerina-dev): (developer team mailing list) to discuss Ballerina roadmap, features, and related issues - - [Twitter](https://twitter.com/ballerinalang): to tweet about Ballerina (use the “#ballerinalang” hashtag). + - [Twitter](https://twitter.com/ballerinalang): to tweet about Ballerina (use the “#ballerinalang” hashtag) - Submitting a bug is just as important as contributing to code. Report an issue in the relevant repo out of the GitHub repos listed below. @@ -38,11 +38,11 @@ We appreciate your help! ## Set up the prerequisites 1. Download [Ballerina](https://ballerina.io) and go through the [learning resources](https://ballerina.io/learn). -2. Read the Ballerina Code of Conduct. +2. Read the Ballerina Code of Conduct. ## Build the source code -For instructions, see Installing from source. +For instructions, see Installing from source. ## Set up the development environment @@ -66,8 +66,8 @@ This plugin will be useful to check and validate a [grammar rule](#contributing- 1. Do your changes in the source code. -
- If you are contributing to Ballerina Grammar; +
+ If you are contributing to Ballerina Grammar: Ballerina grammar has been implemented using ANTLR plugin version 4.5.3. To get a basic understanding of ANTLR grammar syntax and concepts before working with Ballerina grammar, go to [Parr, Terence (January 15, 2013), The Definitive ANTLR 4 Reference](https://www.oreilly.com/library/view/the-definitive-antlr/9781941222621/). From 1d5e47c4041bec4b5ca5283db7121e1a5e853a7a Mon Sep 17 00:00:00 2001 From: praneesha Date: Fri, 14 Feb 2020 16:16:04 +0530 Subject: [PATCH 13/23] Fix border styles --- CONTRIBUTING.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9a3d82b2536e..641188a63df0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -66,8 +66,9 @@ This plugin will be useful to check and validate a [grammar rule](#contributing- 1. Do your changes in the source code. -
- If you are contributing to Ballerina Grammar: +
+ If you are contributing to Ballerina Grammar: +

Ballerina grammar has been implemented using ANTLR plugin version 4.5.3. To get a basic understanding of ANTLR grammar syntax and concepts before working with Ballerina grammar, go to [Parr, Terence (January 15, 2013), The Definitive ANTLR 4 Reference](https://www.oreilly.com/library/view/the-definitive-antlr/9781941222621/). @@ -87,8 +88,8 @@ This plugin will be useful to check and validate a [grammar rule](#contributing- **Info:** The above command will autogenerate some Java classes. The Ballerina AST builder is written on top of the auto-generated `BallerinaParserBaseListener.java` class. Thus, if any new rules are added to the `BallerinaParser.g4`, above command will generate new methods in the `BallerinaParserBaseListener.java` and you need to override those newly-added methods inside the `BLangParserListener.java` accordingly. For more information about the Ballerina compiler, go to [Ballerina Compiler — Design](https://medium.com/@sameerajayasoma/ballerina-compiler-design-3406acc2476c?). - -

+

+
2. Add unit tests accordingly. (The build process will automatically execute all the tests.) 3. Commit the changes to your fork and push them to the corresponding original repo by sending a Pull Request (PR). From b3d01c1c17cb902baabab81e954af571f37b3600 Mon Sep 17 00:00:00 2001 From: praneesha Date: Fri, 14 Feb 2020 16:20:29 +0530 Subject: [PATCH 14/23] Fix the border styling --- CONTRIBUTING.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 641188a63df0..25fedb652df3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -66,9 +66,8 @@ This plugin will be useful to check and validate a [grammar rule](#contributing- 1. Do your changes in the source code. -
+
If you are contributing to Ballerina Grammar: -

Ballerina grammar has been implemented using ANTLR plugin version 4.5.3. To get a basic understanding of ANTLR grammar syntax and concepts before working with Ballerina grammar, go to [Parr, Terence (January 15, 2013), The Definitive ANTLR 4 Reference](https://www.oreilly.com/library/view/the-definitive-antlr/9781941222621/). @@ -88,7 +87,7 @@ This plugin will be useful to check and validate a [grammar rule](#contributing- **Info:** The above command will autogenerate some Java classes. The Ballerina AST builder is written on top of the auto-generated `BallerinaParserBaseListener.java` class. Thus, if any new rules are added to the `BallerinaParser.g4`, above command will generate new methods in the `BallerinaParserBaseListener.java` and you need to override those newly-added methods inside the `BLangParserListener.java` accordingly. For more information about the Ballerina compiler, go to [Ballerina Compiler — Design](https://medium.com/@sameerajayasoma/ballerina-compiler-design-3406acc2476c?). -

+
2. Add unit tests accordingly. (The build process will automatically execute all the tests.) From 6206dfb27f36d0b37fd2122e5988edc597533201 Mon Sep 17 00:00:00 2001 From: praneesha Date: Fri, 14 Feb 2020 17:08:34 +0530 Subject: [PATCH 15/23] Adding a div to border styles --- CONTRIBUTING.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 25fedb652df3..d3f52135933d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -66,9 +66,11 @@ This plugin will be useful to check and validate a [grammar rule](#contributing- 1. Do your changes in the source code. -
+
If you are contributing to Ballerina Grammar: +
+ Ballerina grammar has been implemented using ANTLR plugin version 4.5.3. To get a basic understanding of ANTLR grammar syntax and concepts before working with Ballerina grammar, go to [Parr, Terence (January 15, 2013), The Definitive ANTLR 4 Reference](https://www.oreilly.com/library/view/the-definitive-antlr/9781941222621/). [Ballerina grammar](https://github.com/ballerina-platform/ballerina-lang/tree/master/compiler/ballerina-lang/src/main/resources/grammar) consists of two files: @@ -87,7 +89,8 @@ This plugin will be useful to check and validate a [grammar rule](#contributing- **Info:** The above command will autogenerate some Java classes. The Ballerina AST builder is written on top of the auto-generated `BallerinaParserBaseListener.java` class. Thus, if any new rules are added to the `BallerinaParser.g4`, above command will generate new methods in the `BallerinaParserBaseListener.java` and you need to override those newly-added methods inside the `BLangParserListener.java` accordingly. For more information about the Ballerina compiler, go to [Ballerina Compiler — Design](https://medium.com/@sameerajayasoma/ballerina-compiler-design-3406acc2476c?). - + +
2. Add unit tests accordingly. (The build process will automatically execute all the tests.) From c228e77bd8444285ff0990b6ebc0ddcfe1e4eacb Mon Sep 17 00:00:00 2001 From: praneesha Date: Tue, 18 Feb 2020 15:20:21 +0530 Subject: [PATCH 16/23] Resolve more review comments --- CONTRIBUTING.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d3f52135933d..86b6077bad87 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -6,10 +6,9 @@ We appreciate your help! - [Get started](#get-started) - [Set up the Prerequisites](#set-up-the-prerequisites) -- [Obtain the source code](#obtain-the-source-code) -- [Build the project](#build-the-project) +- [Build the source code](#build-the-source-code) - [Set up the development environment](#set-up-the-development-environment) - - [Set up the Ballerina plugin](#set-up-the-ballerina-plugin) + - [Set up the Ballerina plugins](#set-up-the-ballerina-plugins) - [Set up the ANTLR4 plugin](#set-up-the-antlr4-plugin) - [Submit your contribution](#submit-your-contribution) - [Accept the Contributor License Agreement](#accept-the-contributor-license-agreement) @@ -21,7 +20,7 @@ We appreciate your help! - [StackOverflow](https://stackoverflow.com/questions/tagged/ballerina): to get help with Ballerina (use the Ballerina tag for any of your questions) - [Slack](https://ballerina.io/community/slack/): for real-time discussions with the team and community - - [Ballerina-Dev Google Group](https://groups.google.com/forum/#!forum/ballerina-dev): (developer team mailing list) to discuss Ballerina roadmap, features, and related issues + - [Ballerina-Dev Google Group](https://groups.google.com/forum/#!forum/ballerina-dev): (community mailing list) to discuss Ballerina roadmap, features, and related issues - [Twitter](https://twitter.com/ballerinalang): to tweet about Ballerina (use the “#ballerinalang” hashtag) - Submitting a bug is just as important as contributing to code. Report an issue in the relevant repo out of the GitHub repos listed below. @@ -68,6 +67,7 @@ This plugin will be useful to check and validate a [grammar rule](#contributing-
If you are contributing to Ballerina Grammar: +
@@ -90,6 +90,7 @@ This plugin will be useful to check and validate a [grammar rule](#contributing- For more information about the Ballerina compiler, go to [Ballerina Compiler — Design](https://medium.com/@sameerajayasoma/ballerina-compiler-design-3406acc2476c?). +
From bb5351b71ae4add9cd17a9f1c207bc846b9e3433 Mon Sep 17 00:00:00 2001 From: praneesha Date: Tue, 18 Feb 2020 15:21:24 +0530 Subject: [PATCH 17/23] Update CONTRIBUTING.md Co-Authored-By: Anupama Pathirage --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 86b6077bad87..291f177f88c9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -59,7 +59,7 @@ Currently, Ballerina has the below plugins developed for IntelliJ IDEA and VS Co ### Set up the ANTLR4 plugin -This plugin will be useful to check and validate a [grammar rule](#contributing-to-ballerina-grammar) you wrote. For instructions on installing the ANTLR4 plugin based on your preferred IDE/Editor (which supports antlr 4.x version), go to [ANTLR Documentation](https://www.antlr.org/tools.html). +This plugin will be useful to check and validate a [grammar rule](#contributing-to-ballerina-grammar) you wrote. For instructions on installing the ANTLR4 plugin based on your preferred IDE/Editor (which supports ANTLR 4.x version), go to [ANTLR Documentation](https://www.antlr.org/tools.html). ## Submit your contribution From c6dc6757435a67ac619dfade7cd18906090727e6 Mon Sep 17 00:00:00 2001 From: praneesha Date: Tue, 18 Feb 2020 15:21:35 +0530 Subject: [PATCH 18/23] Update CONTRIBUTING.md Co-Authored-By: Anupama Pathirage --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 291f177f88c9..667fa25df08e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -99,7 +99,7 @@ This plugin will be useful to check and validate a [grammar rule](#contributing- >**Tip:** Follow these commit message requirements: - - Separate subject from body with a blank line + - Separate subject from the body with a blank line - Limit the subject line to 50 characters - Capitalize the subject line - Do not end the subject line with a period From 50bf8511ffd78a892dbc1ef0451e1da624f367be Mon Sep 17 00:00:00 2001 From: praneesha Date: Tue, 18 Feb 2020 15:21:49 +0530 Subject: [PATCH 19/23] Update CONTRIBUTING.md Co-Authored-By: Anupama Pathirage --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 667fa25df08e..b5c02cd97c1d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -75,7 +75,7 @@ This plugin will be useful to check and validate a [grammar rule](#contributing- [Ballerina grammar](https://github.com/ballerina-platform/ballerina-lang/tree/master/compiler/ballerina-lang/src/main/resources/grammar) consists of two files: - - **BallerinaLexer.g4:** contains the lexer rules for Ballerina grammar. Lexer is responsible for tokenizing an input Ballerina source code. + - **BallerinaLexer.g4:** contains the lexer rules for Ballerina grammar. The lexer is responsible for tokenizing an input Ballerina source code. - **BallerinaParser.g4:** contains the parser rules. Parser listens to the token stream generated by the lexer. High level grammar productions/abstractions are defined in the parser using those tokens. Once a change is done to any of the grammar files, the lexer and the parser need to be re-generated. To generate the lexer and the parser, navigate to the `/compiler/ballerina-lang/src/main/resources/grammar/` directory, and execute the below command. From 08bf7cb2a80642f62b08fc90fce45ebb6cdef039 Mon Sep 17 00:00:00 2001 From: praneesha Date: Tue, 18 Feb 2020 15:22:06 +0530 Subject: [PATCH 20/23] Update CONTRIBUTING.md Co-Authored-By: Anupama Pathirage --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b5c02cd97c1d..45ace0a4c839 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -86,7 +86,7 @@ This plugin will be useful to check and validate a [grammar rule](#contributing- java -jar /antlr-4.5.3-complete.jar *.g4 -package org.wso2.ballerinalang.compiler.parser.antlr4 -o /compiler/ballerina-lang/src/main/java/org/wso2/ballerinalang/compiler/parser/antlr4/ ``` - **Info:** The above command will autogenerate some Java classes. The Ballerina AST builder is written on top of the auto-generated `BallerinaParserBaseListener.java` class. Thus, if any new rules are added to the `BallerinaParser.g4`, above command will generate new methods in the `BallerinaParserBaseListener.java` and you need to override those newly-added methods inside the `BLangParserListener.java` accordingly. + **Info:** The above command will autogenerate some Java classes. The Ballerina AST builder is written on top of the auto-generated `BallerinaParserBaseListener.java` class. Thus, if any new rules are added to the `BallerinaParser.g4`, the above command will generate new methods in the `BallerinaParserBaseListener.java` and you need to override those newly-added methods inside the `BLangParserListener.java` accordingly. For more information about the Ballerina compiler, go to [Ballerina Compiler — Design](https://medium.com/@sameerajayasoma/ballerina-compiler-design-3406acc2476c?). From e65b1b5825b380ad09e09ac8802982643a777027 Mon Sep 17 00:00:00 2001 From: praneesha Date: Tue, 18 Feb 2020 15:30:43 +0530 Subject: [PATCH 21/23] Remove borders and fix the grammar rule lnik --- CONTRIBUTING.md | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 45ace0a4c839..687d574933d5 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -59,7 +59,7 @@ Currently, Ballerina has the below plugins developed for IntelliJ IDEA and VS Co ### Set up the ANTLR4 plugin -This plugin will be useful to check and validate a [grammar rule](#contributing-to-ballerina-grammar) you wrote. For instructions on installing the ANTLR4 plugin based on your preferred IDE/Editor (which supports ANTLR 4.x version), go to [ANTLR Documentation](https://www.antlr.org/tools.html). +This plugin will be useful to check and validate a grammar rule you wrote. For instructions on installing the ANTLR4 plugin based on your preferred IDE/Editor (which supports ANTLR 4.x version), go to [ANTLR Documentation](https://www.antlr.org/tools.html). ## Submit your contribution @@ -67,9 +67,6 @@ This plugin will be useful to check and validate a [grammar rule](#contributing-
If you are contributing to Ballerina Grammar: -
- -
Ballerina grammar has been implemented using ANTLR plugin version 4.5.3. To get a basic understanding of ANTLR grammar syntax and concepts before working with Ballerina grammar, go to [Parr, Terence (January 15, 2013), The Definitive ANTLR 4 Reference](https://www.oreilly.com/library/view/the-definitive-antlr/9781941222621/). @@ -90,8 +87,6 @@ This plugin will be useful to check and validate a [grammar rule](#contributing- For more information about the Ballerina compiler, go to [Ballerina Compiler — Design](https://medium.com/@sameerajayasoma/ballerina-compiler-design-3406acc2476c?). -
-
2. Add unit tests accordingly. (The build process will automatically execute all the tests.) From a655fb0456a468538f5f26f40b9834a86cef39f5 Mon Sep 17 00:00:00 2001 From: praneesha Date: Wed, 19 Feb 2020 12:16:57 +0530 Subject: [PATCH 22/23] Resolve more review comments --- CONTRIBUTING.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 687d574933d5..e27e121c20a6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -5,7 +5,6 @@ Ballerina is an open source programming language and platform for cloud-era appl We appreciate your help! - [Get started](#get-started) -- [Set up the Prerequisites](#set-up-the-prerequisites) - [Build the source code](#build-the-source-code) - [Set up the development environment](#set-up-the-development-environment) - [Set up the Ballerina plugins](#set-up-the-ballerina-plugins) @@ -16,12 +15,16 @@ We appreciate your help! ## Get started +- Download [Ballerina](https://ballerina.io) and go through the [learning resources](https://ballerina.io/learn). +- Read the Ballerina Code of Conduct. + - Join the conversations at: - [StackOverflow](https://stackoverflow.com/questions/tagged/ballerina): to get help with Ballerina (use the Ballerina tag for any of your questions) - [Slack](https://ballerina.io/community/slack/): for real-time discussions with the team and community - [Ballerina-Dev Google Group](https://groups.google.com/forum/#!forum/ballerina-dev): (community mailing list) to discuss Ballerina roadmap, features, and related issues - [Twitter](https://twitter.com/ballerinalang): to tweet about Ballerina (use the “#ballerinalang” hashtag) + - [GitHub](https://github.com/ballerina-platform/ballerina-lang/issues): to file issues, join the conversations on new features, comment on other issues, and send your pull requests. - Submitting a bug is just as important as contributing to code. Report an issue in the relevant repo out of the GitHub repos listed below. @@ -35,10 +38,6 @@ We appreciate your help! - Browse issues labeled "good first issue" in the ballerina-lang repo. - Use comments on the issue itself to indicate that you will be working on it and get guidance and help. -## Set up the prerequisites -1. Download [Ballerina](https://ballerina.io) and go through the [learning resources](https://ballerina.io/learn). -2. Read the Ballerina Code of Conduct. - ## Build the source code For instructions, see Installing from source. @@ -66,7 +65,7 @@ This plugin will be useful to check and validate a grammar rule you wrote. For i 1. Do your changes in the source code.
- If you are contributing to Ballerina Grammar: + Contributing to Ballerina Grammer: Ballerina grammar has been implemented using ANTLR plugin version 4.5.3. To get a basic understanding of ANTLR grammar syntax and concepts before working with Ballerina grammar, go to [Parr, Terence (January 15, 2013), The Definitive ANTLR 4 Reference](https://www.oreilly.com/library/view/the-definitive-antlr/9781941222621/). From 57234804ce4abe9d11aaf67a012af83aa05647d1 Mon Sep 17 00:00:00 2001 From: praneesha Date: Wed, 19 Feb 2020 12:19:04 +0530 Subject: [PATCH 23/23] Fix the Downloads link --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e27e121c20a6..f0bd79c072da 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -15,7 +15,7 @@ We appreciate your help! ## Get started -- Download [Ballerina](https://ballerina.io) and go through the [learning resources](https://ballerina.io/learn). +- Download [Ballerina](https://ballerina.io/downloads/) and go through the [learning resources](https://ballerina.io/learn). - Read the Ballerina Code of Conduct. - Join the conversations at: