Dynamo
Primer for v2.0
English
English
  • About
  • Introduction
    • What is Dynamo & How Does It Work?
    • Primer User Guide, Dynamo Community & Platform
  • Setup for Dynamo
  • User Interface
    • Workspace
    • Library
  • Nodes and Wires
  • Essential Nodes & Concepts
    • Index of Nodes
    • Geometry for Computational Design
      • Geometry Overview
      • Vector, Plane & Coordinate System
      • Points
      • Curves
      • Surfaces
      • Solids
      • Meshes
    • The Building Blocks of Programs
      • Data
      • Math
      • Logic
      • Strings
      • Color
    • Designing with Lists
      • What's a List
      • Working with Lists
      • Lists of Lists
      • n-Dimensional Lists
    • Dictionaries in Dynamo
      • What is a Dictionary
      • Dictionary Nodes
      • Dictionaries in Code Blocks
      • Revit Use-Cases
  • Custom Nodes & Packages
    • Custom Nodes
      • Custom Node Introduction
      • Creating a Custom Node
      • Publishing to Your Library
    • Packages
      • Package Introduction
      • Package Case Study - Mesh Toolkit
      • Developing a Package
      • Publishing a Package
      • Zero-Touch Importing
  • Dynamo for Revit
    • The Revit Connection
    • Selecting
    • Editing
    • Creating
    • Customizing
    • Documenting
  • Dynamo for Civil 3D
    • The Civil 3D Connection
    • Getting Started
    • Node Library
    • Sample Workflows
      • Roads
        • Light Pole Placement
      • Land
        • Service Placement
      • Utilities
        • Rename Structures
      • Rail
        • Clearance Envelope
      • Surveying
        • Point Group Management
    • Advanced Topics
      • Object Binding
      • Python and Civil 3D
    • Dynamo Player
    • Useful Packages
    • Resources
  • Dynamo in Forma Beta
    • Set Up Dynamo Player in Forma
    • Add and Share Graphs in Dynamo Player
    • Run Graphs in Dynamo Player
    • Dynamo compute service differences with Desktop Dynamo
  • Coding in Dynamo
    • Code Blocks and DesignScript
      • What's a Code Block
      • DesignScript Syntax
      • Shorthand
      • Functions
    • Geometry with DesignScript
      • DesignScript Geometry Basics
      • Geometric Primitives
      • Vector Math
      • Curves: Interpolated and Control Points
      • Translation, Rotation, and Other Transformations
      • Surfaces: Interpolated, Control Points, Loft, Revolve
      • Geometric Parameterization
      • Intersection and Trim
      • Geometric Booleans
      • Python Point Generators
    • Python
      • Python Nodes
      • Python and Revit
      • Setup Your Own Python Template
    • Language Changes
  • Best Practices
    • Graph Strategies
    • Scripting Strategies
    • Scripting Reference
    • Managing Your Program
    • Efficiently Working With Large Data Sets In Dynamo
  • Sample Workflows
    • Getting Started Workflows
      • Parametric Vase
      • Attractor Points
    • Concept Index
  • Developer Primer
    • Build Dynamo from Source
      • Build DynamoRevit from Source
      • Managing and Updating Dependencies in Dynamo
    • Developing for Dynamo
      • Getting Started
      • Zero-Touch Case Study - Grid Node
      • Executing Python Scripts in Zero-Touch Nodes (C#)
      • Going Further with Zero-Touch
      • Advanced Dynamo Node Customization
      • Using COM (interop) types in Dynamo Packages
      • NodeModel Case Study - Custom UI
      • Updating your Packages and Dynamo Libraries for Dynamo 2.x
      • Updating your Packages and Dynamo Libraries for Dynamo 3.x
      • Extensions
      • Defining Custom Package Organization for Dynamo 2.0+
      • Dynamo Command Line Interface
      • Dynamo Integration
      • Developing For Dynamo For Revit
      • Publish a Package
      • Build a Package from Visual Studio
      • Extensions as Packages
    • Pull Requests
    • Testing Expectations
    • Examples
  • Appendix
    • Frequently Asked Questions
    • Visual Programming and Dynamo
    • Resources
    • Release Notes
    • Useful Packages
    • Example Files
    • Host Integration Map
    • Download PDF
    • Dynamo Keyboard Shortcuts
Powered by GitBook
On this page
Edit on GitHub
Export as PDF
  1. Developer Primer

Pull Requests

PreviousExtensions as PackagesNextTesting Expectations

Last updated 3 months ago

Dynamo depends on the creativity and commitment of its community, and the Dynamo team encourages contributors to explore possibilities, test ideas, and engage the community for feedback. While innovation is highly encouraged, changes will only be merged if they make Dynamo easier to use and satisfy the guidelines defined in this document. Changes with narrowly-defined benefits will not be merged.

Pull request expectations

The Dynamo team expects pull requests to follow a few guidelines:

  • Adhere to our and

  • Include unit tests when adding new features

  • When fixing a bug, add a unit test that highlights how the current behavior is broken

  • Keep the discussion focused on one issue. Create a new issue if a new or related topic comes up.

And a few guidelines on what not to do:

  • Surprising us with big pull requests. Instead, file an issue and start a discussion so we can agree on a direction before you invest a large amount of time.

  • Commit code that you didn't write. If you find code that you think is a good fit to add to Dynamo, file an issue and start a discussion before proceeding.

  • Submit PRs that alter licensing-related files or headers. If you believe there's a problem with them, file an issue and we'll be happy to discuss it.

  • Make API additions without filing an issue and discussing it with us first.

Filling out the pull request template

When submitting a pull request, please use the . Before submitting your PR, ensure that the purpose is clearly described and all of the declarations can be claimed as true:

  • The codebase is in a better state after this PR

  • Is documented according to the

  • The level of testing this PR includes is appropriate

  • User facing strings, if any, are extracted into *.resxfiles

  • All tests pass using the self-service CI

  • Snapshot of UI changes, if any

  • Changes to the API follow , and are documented in the document.

An appropriate reviewer will be assigned to your pull request by the Dynamo Team.

Pull request review process

Once a pull request is submitted, you may need to stay involved during the review process. Please be aware of the following review criteria:

  • The Dynamo team meets once per month to review pull requests from oldest to newest.

  • If a reviewed pull request requires changes by the owner, the owner of the PR has 30 days to respond. If the PR has seen no activity by the next session, it will be either closed by the team or depending on its utility will be taken over by someone on the team.

  • Pull requests should use Dynamo's default PR template

  • Pull requests that do not have the Dynamo PR templates completely filled out with all declarations satisfied will not be reviewed.

Cherry-picking Dynamo Revit commits

Since there are multiple versions of Revit available on the market, you may be required to cherry-pick your changes into specific DynamoRevit Release branches so that different versions of Revit can pick up the new functionality. During the review process, contributors will be responsible for cherry-picking their reviewed commits to the other DynamoRevit branches as specified by the Dynamo team.

coding standards
node naming standards
default PR template
standards
Semantic Versioning
API Changes