Skip to content

wheels-dev/wheels

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

GitHub Workflow Status (with event) Dynamic JSON Badge

Wheels

Wheels provides fast application development, a great organization system for your code, and is just plain fun to use.

One of our biggest goals is for you to be able to get up and running with Wheels quickly. We want for you to be able to learn it as rapidly as it is to write applications with it.

Getting Started

Quick Start

Create a new Wheels application using the CLI:

wheels new myapp

Learning Wheels

In this Beginner Tutorial: Hello World, we'll be writing a simple application to make sure we have Wheels installed properly and that everything is working as it should. Along the way, you'll get to know some basics about how applications built on top of Wheels work.

System Requirements

CFML Engines:

  • Adobe ColdFusion: 2018, 2021, 2023
  • Lucee: 5.x, 6.x, 7.x
  • BoxLang: 1.x

Supported Databases:

  • Oracle (new in 3.0!)
  • Microsoft SQL Server
  • PostgreSQL
  • MySQL
  • H2

Note: Adobe ColdFusion 2016 is no longer supported as of Wheels 3.0.

Project Structure

Wheels 3.0 introduces a clean, modern project structure:

your-app/
├── app/
│   ├── controllers/
│   ├── models/
│   ├── views/
│   └── ...
├── config/
├── public/
├── tests/
├── vendor/
│   ├── wheels/
│   ├── wirebox/
│   └── testbox/
└── ...

Monorepo Structure

This repository contains the complete Wheels ecosystem in a monorepo structure:

wheels-monorepo/
├── cli/                    # Wheels CLI (CommandBox module)
│   └── src/                # Published as 'wheels-cli'
├── core/                   # Framework Core
│   └── src/wheels/         # Published as 'wheels-core'
├── templates/              # Application Templates
│   └── base/src/           # Starting structure for new apps
├── docs/                   # Documentation
│   └── src/                # Published to wheels.dev/guides
├── examples/               # Example applications
├── tools/
│   └── build/scripts/      # Build and packaging scripts
└── tests/                  # Framework test suite

Key Components:

  • CLI (wheels-cli): Development tools and generators (CommandBox module)
  • Core (wheels-core): Framework runtime installed in /vendor/wheels
  • Base Template (wheels-base-template): Starting structure downloaded by CLI for new applications
  • Documentation: Comprehensive guides published to wheels.dev/guides
  • Build System: Automated packaging and ForgeBox distribution

Package Flow: CLI downloads base template from ForgeBox during wheels g app, which includes dependency on core framework. Documentation is automatically published to wheels.dev/guides. All components are versioned together and distributed as separate ForgeBox packages that work seamlessly together.

Contributing

We encourage you to contribute to Wheels! Whether you're fixing bugs, adding features, improving documentation, or helping with discussions, your contributions make Wheels better for everyone.

Two Ways to Contribute:

  1. Developer Applications - Built using wheels new command for application development
  2. Framework Core - The wheels-dev/wheels monorepo for core framework contributions

Please check out our Contributing Guide for detailed guidelines on how to get started. We've made the contribution process as smooth as possible with Docker support, comprehensive testing setup, and clear documentation.

Running Tests

Important: Before running tests, make sure that all debugging is turned OFF. This could add a considerable amount of time for the tests to complete and may cause your engine to become unresponsive.

Test Database Setup

  1. Create a database on a supported database server named wheelstestdb
    • Supported servers: Oracle, Microsoft SQL Server, PostgreSQL, MySQL, H2
  2. Create a datasource in your CFML engine's administrator named wheelstestdb pointing to the wheelstestdb database
  3. Important: Make sure to give it CLOB and BLOB support
  4. Open your browser to the Wheels Welcome Page
  5. In the navigation menu, click the Tests > core Tests

Docker Testing

  1. Create a database on a supported database server named wheelstestdb. At this time the supported database servers are H2, Microsoft SQL Server, PostgreSQL, MySQL, and Oracle.
  2. Create a datasource in your CFML engine's administrator named wheelstestdb pointing to the wheelstestdb database and make sure to give it CLOB and BLOB support.
  3. Open your browser to the Wheels Welcome Page.
  4. In the gray debug area at the bottom of the page, click the Run Tests link next to the version number on the Framework line.

For multi-engine testing, use our Docker setup

Reporting Issues

Please report any errors you encounter on our issue tracker. When reporting, please include:

  • Database engine and version
  • CFML engine and version
  • HTTP server and version
  • Steps to reproduce the issue

Getting Help

Supported CFML Engines

Wheels supports the following CFML engines:

  • Adobe ColdFusion: 2018, 2021, 2023
  • Lucee: 5.x, 6.x, 7.x
  • BoxLang: 1.x

License

Wheels is released under the Apache License Version 2.0.

Our Contributors

Made with contrib.rocks.


Wheels 3.0 - Faster, more organized, and just plain fun to use!

About

An open source ColdFusion framework inspired by Ruby on Rails.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published

Contributors 37