A Apple divulgou novos detalhes sobre o processo de lançamento do Swift 2.2, seus objetivos e também um cronograma com detalhes relacionados a linguagem. A versão 2.2 será sobretudo uma versão de código compatível com a versão do Swift 2.1, deixando as mudanças que causam quebra de compatibilidade para o Swift 3, declarou a Apple.
A próxima versão do Swift, a primeira após a Apple ter anunciado que a linguagem de programação se tornaria open source, a expectativa é que seja lançada entre Março e Maio de 2016, em tempo de ser apresentada na próxima Conferência Mundial de Desenvolvedores da Apple (WWDC). Tal versão incluirá principalmente correções de bugs, melhorias na ferramenta Diagnostics e também melhorias na produção de códigos. Segundo a Apple, essas melhorias vão ocorrer, mas sem mudanças significativas na forma como o desenvolvedor utiliza a linguagem no seu dia a dia. Além disso, nessa versão não haverá mudanças significativas nas bibliotecas do núcleo do Swift e nem no Package Manager do Swift.
Em contrapartida, muitas mudanças disruptivas na linguagem e em suas bibliotecas estão planejadas para o Swift 3, que possui uma previsão de lançamento para o fim de 2016.
Nesse momento, as contribuições com sugestões de alterações, correções ou melhorias no código do Swift 2.2, só serão realizadas, a fim de tornar o código mais compatível com a versão 2.1. A inclusão de novos recursos no código, só ocorrerá, caso haja uma boa razão para incorporá-los na versão atual.
A principal data no processo de lançamento da versão do 2.2 do Swift ocorre em 13 de Janeiro de 2016. Quando um branch for criado, haverá um master para os 5 repositórios principais: swift, swift-llvm, swift-clang, swift-lldb, e swift-cmark.
A lista a seguir, contém as novas funcionalidades que serão inclusas no Swift-2.2:
- Permitir o uso da maioria das palavras reservadas nos arguments labels, tal como: in, repeat, etc;
- Operadores para comparação entre tuplas, até um limite de operadores;
- Permitir que a Constraining AnySequence.init possa delegar chamadas de AnySequence para SequenceType e poupar algumas operações de downcasts dinâmicos que forem necessários;
- Criar Lazy flatMap para suportar variáveis do tipo optionals. Agora é possível utilizá-lo em uma cadeia de sequences, após uma determinada alteração;
- Trocar o uso da palavra resevada typealias por associated type. Essa melhoria tem como objetivo, eliminar conflitos na utilização de palavras reservadas.
Depois que um novo branch for criado, para que uma correção no Swift 2.2 seja incluída, primeiramente a correção precisa ser aceita no branch principal, e todas as alterações serão inclusas especificamente no Swift 2.2 e não serão relacionados com o Swift 3. Com relação aos Pull requests, eles devem conter:
- Descrição sobre o objetivo da alteração;
- Avaliação sobre o impacto da mudança no código;
- Avaliação do risco associado a tal alteração;
- Detalhes sobre os resultados dos testes realizados ou detalhes sobre testes que necessitam ser feitos.