Introducing Kitura-Next

By FutureJones

Created on 2021-02-08

A Brief History

Welcome to Kitura-Next,
Kitura-Next is a 'hard-fork' of the IBM-Swift/Kitura project by IBM.
In late 2019 IBM stopped support and management of the project and handed the project over to the community.
A 'community project', 'kitura.dev', was setup in mid 2020 to move the project forward.
In late 2020 it was becoming apparent that the existing community project did not offer the support or flexibility to adapt to our future vision of Kitura, so the decision was made to create the Kitura-Next project.
Kitura-Next is a separate and independently maintained version of the original 'IBM-Swift Kitura' project.

Overview

The Kitura-Next project consists of the main Kitura project and about 80 other sub-projects.
At Kitura-Next our goal is to provide a clean and stable code base for the existing Kitura project and all the related sub-projects.
When this has been achieved we can than move forward with additions and improvements.

Main Project Focus Items

The following are some of the main focus points and items that we are working on.

1. Clean Code Base

The goal here is to have the cleanest and noise free code base as possible.
Code checking and quality statistics bots such as sonarcloud, codedev, codebeat, codefactor, all add excessive noise to the code repository and notification systems.

  • Remove all automated code checking bots
  • Removal of dead code
  • Removal of stale branches
  • Removal of support for old and outdated Swift versions
  • Removal of unsupported packaging systems such as Carthage and CocoaPods
  • Removal of generated documentation from the main branch. (See Uniform Documentation)

2. Modern Simple CI

The existing Travis CI system is outdated and overly complicated.
The CI system is being changed over to GitHub Actions.

3. Uniform Documentation

The existing documentation location and styling is not consistent across all the project repositories.
The documentation is currently being generated by Jazzy Docs and the generated documentation is included in docs folder in the main branch.
This adds unnecessary size and code noise to the main repository branch.
As the docs are being hosted using github pages we can use a special gh-pages branch for storing the generated documentation.
The new Jazzy_Docs github action workflow automatically generates the docs and updates the gh-pages branch.
This keeps the main branch clean and containing only project relevant code.

4. Easy to Get Started

The Kitura-Cli is a great way to quickly and easily get stared with a Kitura project.
We will be updating the Cli app to include support for more systems and architectures as well as adding new starter projects.

5. Multi Platform Compatibility

Through collaboration with the projects such as Swift on Arm we aim to add support for as many different systems and architectures as possible.

Current Status

Where are we now?

  • Most of the main project repositories have been updated to the new systems.
  • The Kitura-Cli app is now available for arm/arm64/amd64 on multiple OS's and there will soon be a Beta release for M1 Macs.

Future Work

There is a huge amount of ongoing and future work planned such as:-

  • Continue to work through and update all sub-projects.
  • Update and improve documentation.
  • Add new example projects.
  • Add new tutorials.

Summary

This is a brief insight into the Kitura-NexT project.
Feel free to leave comments, opinions and ideas, both positive and negative.
Kitura-NexT Discussions