Esri welcomes contributions from anyone and everyone. Please see our guidelines for contributing.
Table of Contents:
- I want to contribute, what should I work on?
- Before creating and issue
- Getting a development environment set up
- Adding a new expression
- Commit message format
- Pull requests
You can help mostly by:
- Suggesting ideas for Arcade expressions by creating a Expression request issue1.
- Reporting problems with existing expressions by creating a Bug issue.
- Working on the issues marked as help wanted. There is also a good first issue label if you are just getting started.
- Comment on the issue and check if any additional context is needed before you start working. This will also help everyone knows that you are already working on it.
(1): If you are looking for inspiration of example expressions, you can search in different places such as: ArcGIS Online "Arcade Expressions and You", Arcade questions at Esri Community, articles, videos, or documentation pages (e.g. Arcade samples within the ArcGIS Maps SDK for JavaScript).
- If something isn't working the way you expect, take a look at the existing issues before logging a new one.
- If you have a general question about Arcade, please check the arcade tag at Esri Community, or go to the right place where you can ask questions, and collaborate with others.
- If you think Arcade should have its own community, you might want to consider giving kudos to this idea.
- Provide all of the requested info from the appropriate issue template.
- Other things to consider when filling a bug issue(so we can work on resolving the issue as soon as possible):
- Use a clear and descriptive title.
- Detail what is happening now vs what should happen.
- Tell us how to reproduce the issue (e.g. is it happening in a specific profile, browser, ...?).
- Can it be reliably reproduced? If not, tell us how often it happens and under what circumstances.
- Provide a sample that reproduces the issue whenever possible.
- Screenshots, GIFsn and screen recordings are our friends!
- Did this problem start happening after a recent release or was it always a bug?
You can make use of the ArcGIS Arcade Playground if you need it, but to use this repository you don't need a special configuration, just run the expression in one of the supported products.
- Each expression lives in a markdown file. We have prepared a template file with all information it should include.
- Use kebab-case to name files and folders, and avoid special characters:
\/:*?"<>|.?
. README.md
files are the only exception.- Include reference files in
images/
andsample-data
within the same parent folder as the expression.- Use the same name as the markdown file. If several are needed, use the name as a prefix (e.g.
create-lateral-prototype.js
andcreate-lateral-devsummit2023.js
). - Compress sample data files using ZIP and leave the original extension in the file name (e.g.
file-name.gdb.zip
,file-name.stylx.zip
, ...).
- Use the same name as the markdown file. If several are needed, use the name as a prefix (e.g.
- If you are grouping several expressions within a folder, include a
README.md
using readme-template.md, and follow all conventions above.- Include a single link from the parent
README.md
to the newREADME.md
.
- Include a single link from the parent
This project do not strictly follows conventional commits, but we will use the format <type>: description [optional #issue-number]
. Be sure to provide clear and sufficient information in commit messages.
For <type>
you should use:
- feat: A new expression
- fix: A bug fix within an expression
- docs: Documentation only changes (changes in markdown)
- style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
- refactor: A code change that neither fixes a bug nor adds a feature
description
:
- The subject contains succinct description of the change
- use the imperative, present tense: "change" not "changed" nor "changes"
- do not capitalize first letter
- do not place a period . at the end
- entire length of the subject must not go over 50 characters
- describe what the commit does, not what issue it relates to or fixes
- be brief, yet descriptive - we should have a good understanding of what the commit does by reading the subject
Examples:
fix: adds some calculation attribute rules related to work migrating attributes #11
doc: adds missing expressions to README files #77
Before each PR follow remember: