Skip to content

My first package walk through

Ana María Martínez Gómez edited this page Jun 7, 2024 · 8 revisions

You're missing a good analysis tools in this package repository? You can create the package via a GitHub issue or manually with the support of a package template script! Manual package creation is the more versatile, but requires that you are familiar with the package structure and installation functions. The issue driven package creation, allows you to propose a tool by just opening an issue, which in many cases can be automatically converted into a package and released (by pushing it to MyGet). For more details on how to contribute please see the other Wiki pages.

If something is not clear, you have any questions or need help, please let us know via a GitHub issue or pull request. We love to welcome new contributors to our community!

Legal

To adhere to distribution rights, we only use packages that obtain files from the web at runtime and install them. No package in this project is self-contained (i.e., they do NOT contain the actual binaries). See Chocolatey's legal documentation for more details.

Automatic package pull request via new issue

  • Go to Issues - New Issue
  • Select the appropriate package type
  • Fill out the required fields accurately & submit the issue
  • A maintainer will review your submission and label it for automatic package creation
    • The automated processing includes linting and testing
  • If changes are required, download the created branch and modify it locally

Manual package creation using Python template script

  • Find the appropriate package type
    • See supported options via $ python scripts/utils/create_package_template.py --type
    • Also see $python scripts/utils/create_package_template.py -h for detailed usage information
  • See required arguments via $ python scripts/utils/create_package_template.py --type <package_type>
  • Provide required arguments
    • Alternatively, use the --raw option to create package template files using placeholder data
  • Ensure scripts and package meet code and structure requirements
    • See the Wiki
    • Lint PowerShell code: PS scripts/test/lint.ps1 (requires psscriptanalyzer, see lint.ps1 contents)
    • Lint all packages $ python scripts/test/lint.py packages
  • Test package installation and uninstallation.
  • After fixing any issues, submit a pull request
    • Lints and test run automatically for each pull request, they must succeed before pull requests can be accepted

Manual package creation based on existing package

  • Identify an existing package that's installed similarly to your tool
  • Copy package data and modify where appropriate
  • See steps on linting, testing, and submitting above