Skip to content

Project Creation Guide

Mark Pollack edited this page May 17, 2025 · 4 revisions

Project Creation Process

You can apply to create a new project using the community Issue Form in the community repository. After submission, a GitHub issue will be automatically created where the Spring AI Community Leads will discuss your proposal with you. This discussion will help determine if your project meets the necessary requirements for inclusion.

🗳️ Want to propose a new project?

We're always looking to support new integrations and community needs.
To propose a new subproject or integration:

➡️ Create a new issue in the community repository

The requirements for project creation are listed below.

Project Requirements

  • Working proof of concept - A functioning implementation that uses artifacts (dependencies, libraries) from the Spring AI project and demonstrates integration with Spring AI's core APIs. The code should show clear value to the Spring AI ecosystem and solve a real problem that other developers face.

  • Clear project scope and description - Projects must provide a clear, concise description of their purpose, scope, and goals. This should include what problems the project solves, who the intended users are, and how it fits within the Spring AI ecosystem. This helps prevent scope creep and ensures alignment with Spring AI's mission.

  • Identify development team - Projects must have at least one committed developer.

  • Basic documentation in English - Documentation must clearly explain what the project does, how to get started, and basic usage examples. While it doesn't need to be exhaustive at this stage, it should be sufficient for other developers to understand and begin using the project. All documentation must be in English to ensure accessibility to the global Spring community.

  • Unit and Integration tests - The project must include a basic suite of integration tests that demonstrate proper functionality and integration with Spring AI. These tests should verify the core features and integration points, ensuring reliability and making it easier to identify breaking changes.

  • Agreement to project guidelines - Maintainers must agree to follow the Spring AI code of conduct. This ensures alignment with Spring AI's values and practices while fostering a collaborative community environment.

  • Apache 2 license - This is for maximum license compatibility with the Spring ecosystem.

  • Public repository with open development - All development must occur in a public repository with transparent processes for contributions and issue tracking. This can all occur on GitHub. This ensures community visibility and encourages collaboration while building trust in the project's development process.

  • Clear contribution guidelines - The project should define contribution guidelines. Can use existing contribution guidelines such as https://github.com/spring-projects/spring-framework/blob/main/CONTRIBUTING.md as a basis. The guidelines need to be clear and welcoming to new contributors.

  • Versioning Requirements

    • Follow semantic versioning (MAJOR.MINOR.PATCH)
    • Non stable: 0.x versions
    • Stable: 1.x or higher

Project Naming and Package Guidelines

  • Naming
    • Project names typically follow the pattern 'spring-ai-[key-feature]' (e.g., spring-ai-swarm, spring-ai-vectorstore)
    • Projects aren't strictly limited to this pattern, but should be descriptive and relevant
    • Names must not be offensive or inappropriate
    • All projects should follow common Spring naming conventions/patterns for classes
    • Final project name is handled on a case-by-case basis during the submission process
  • Packaging
    • Options
      • You can publish using GitHub's process for projects in an org to release into Maven Central using io.github.spring-ai-community as the groupId
      • You can publish to Maven Central in your own bespoke manner.
    • Free choice of the Java root package name

Commercial and Organizational Structure

  • Commercial ownership/control is acceptable, single-vendor projects are welcome
  • Projects should be transparent about their commercial relationships.
Clone this wiki locally