Contributing to IITC‐CE - IITC-CE/ingress-intel-total-conversion GitHub Wiki

Getting Involved

Third-party patches are absolutely essential in IITC "Community Edition". However, they're not the only way to get involved with IITC development. You can help the project tremendously by discovering and reporting bugs; helping others on Reddit, Telegram IITC Group chat, and GitHub issues; and spreading the word about IITC-CE among your teammates and friends.

Reporting Bugs

Reporting Bugs

Contributing Code

GitHub flow

If you're not yet familiar with the way GitHub works (forking, pull requests, etc.), be sure to check out the awesome article about forking on the GitHub Help website — it will get you started quickly.

Contribution Workflow

  • Create a personal fork of the project on GitHub.

  • Clone the fork on your local machine. Your remote repo on GitHub is called origin.

  • Add the original repository as a remote called upstream.

  • If you created your fork a while ago be sure to pull upstream changes into your local repository.

  • Create a new branch to work on! Branch from master.

    You should always write each batch of changes (feature, bugfix, etc.) in its own topic branch.

    Please do not commit to the master branch, or your unrelated changes will go into the same pull request.

  • Implement/fix your feature, comment your code.

  • Follow the code style of the project, including indentation.

  • Add or change the documentation as needed.

  • Squash some commits into a single commit if necessary.

  • Push your branch to your fork on GitHub, the remote origin.

  • From your fork open a pull request in the correct branch. Target the project's master branch!

  • If the maintainer requests further changes just push them to your branch. The PR will be updated automatically.

  • Once the pull request is approved and merged you can pull the changes from upstream to your local repo and delete your extra branch(es).

And last but not least: follow our commit messages style:

  • Start message with some keyword describing it's scope ("IITC-Mobile: …", "draw-tools: …")
  • Follow good practices, e.g. these seven rules.
  • If it seems difficult to summarize what your commit does, it may be because it includes several logical changes or bug fixes, and are better split up into several commits using git add -p.

Code Style

Code Style

Plugin Icons

When contributing new plugins to IITC-CE, developers must provide an icon for their plugin:

  • Icons should be in SVG format
  • Icons are hosted in the website repository at IITC-CE/website@master/static/extras/plugin-icons/
  • You can either provide the icon design in your pull request description, or add it directly to the website repository
  • Icons follow the naming pattern of your plugin and are referenced as: https://iitc.app/extras/plugin-icons/{plugin-name}.svg

The system relies on this configuration line in the build settings:

'url_icon_base': 'https://iitc.app/extras/plugin-icons/{}.svg',

Please ensure your plugin includes the appropriate icon reference to maintain consistency across the project.

Code of Conduct

Everyone is invited to participate in the IITC-CE community and related projects: we want to create a welcoming and friendly environment. Harassment of participants or other unethical and unprofessional behavior will not be tolerated in our spaces. The Contributor Covenant applies to all projects under the IITC-CE organization.

Configuring CI/CD in forks

IITC uses GitHub Actions to build and deploy. By default, you already have the ability to get IITC and IITC Mobile builds in your PRs (if you create a PR with a target as your fork or original repository) and publishing artifacts in your GitHub releases.

You can also set up publishing beta and release builds if you wish. To do this, first replace the encrypted keystore at mobile/keystore/android.jks with your own. Then open your repository fork » Settings » Secrets » Actions and specify the following values:

  • KEYSTORE_PASS - secure password for your keystore.
  • ALIAS_NAME - identifying name for your key.
  • ALIAS_PASS - secure password for your key.
  • WEBSITE_REPO - full name of repository with your website (as your_name/repository_name)
  • API_TOKEN_GITHUB - used if you specified the website repository name. You can retrieve the API_TOKEN_GITHUB here (set the repo permissions).
  • TG_BOT_TOKEN - specify a Telegram bot token to send IITC Mobile (release and beta) builds to Telegram
  • TG_CHAT_ID - used if you specified TG_BOT_TOKEN. Unique identifier for target chat. How to get unique identifier from telegram api: curl https://api.telegram.org/bot<token>/getUpdates

Thank You

Not only does your contribution to IITC and its community earn our gratitude, but it also makes you AWESOME.

Join this approved list of awesome people and help us push the limits of what's possible with community efforts!

⚠️ **GitHub.com Fallback** ⚠️