2023-02-05 16:42:47 -05:00
|
|
|
# Changelog
|
|
|
|
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
|
|
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
|
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
|
|
2023-09-04 21:56:36 -04:00
|
|
|
## [2.0.0] - Unreleased
|
2023-08-17 14:02:41 -04:00
|
|
|
|
2023-08-19 12:37:14 -04:00
|
|
|
This update introduces major changes in the codebase, including the removal of Win32 support, and the addition of new
|
2023-09-21 17:24:12 -04:00
|
|
|
features. This is the Mk II of ncc, and it is a major update, so please read the changelog carefully.
|
2023-08-23 11:44:32 -04:00
|
|
|
|
2023-08-19 12:37:14 -04:00
|
|
|
|
2023-08-19 08:44:24 -04:00
|
|
|
### Added
|
2023-08-17 14:32:47 -04:00
|
|
|
- `LICENSE.md` & `license.md` are now detected as license files in `\ncc\Classes\ComposerExtension > ComposerSourceBuiltin > convertProject()`
|
2023-08-17 14:40:49 -04:00
|
|
|
- Added new exception `PathNotFoundException` and implemented it in replacement for `DirectoryNotFoundException` and
|
|
|
|
`FileNotFoundException` in `\ncc\Exceptions`
|
2023-08-19 04:48:23 -04:00
|
|
|
- Added a new interface class `BytecodeObjectInterface` which will be used to implement object types for compiled assets
|
2023-08-19 12:52:39 -04:00
|
|
|
- Added new exception `GitException` in `\ncc\Exceptions` to replace all git related exceptions
|
2023-08-21 21:35:24 -04:00
|
|
|
- Added new exception `PackageException` in `\ncc\Exceptions` to replace all package related exceptions
|
2023-08-23 11:44:32 -04:00
|
|
|
- Added new exception `OperationException` in `\ncc\Exceptions` to replace all generic related exceptions
|
2023-08-28 18:27:09 -04:00
|
|
|
- Added a new interface class `SerializableObjectInterface` to implement serializable objects, `BytecodeObjectInterface`
|
|
|
|
extends this interface to allow for serialization of compiled assets
|
- `\ncc\Objects\ProjectConfiguration > Dependency > __construct()` now requires the parameters `$name`, `$source_type`,
`$source` and `$version`
- `\ncc\Objects\ProjectConfiguration > Dependency > fromArray()` Throws an `ConfigurationException` if the property
`name` is missing in the dependency configuration
- Also updated a bunch of objects in a similar fashion to the ones above, (BuildConfiguration, Execute, ExitHandle,
ExitHandler, Repository, Assembly, Build, Dependency, ExecutionPolicy, Installer, Project, UpdateSource) I'm not
going to list them all here, but you can find them in the commit history.
- Added a new interface class `ValidatableObjectInterface` to implement validatable objects, this method will throw a
`ConfigurationException` if the object is not valid or a `NotSupportedException` if the object contains methods that
are not supported by the current version of ncc or project.
2023-08-31 18:25:37 -04:00
|
|
|
- Added a new interface class `ValidatableObjectInterface` to implement validatable objects, this method will throw a
|
|
|
|
`ConfigurationException` if the object is not valid or a `NotSupportedException` if the object contains methods that
|
|
|
|
are not supported by the current version of ncc or project.
|
2023-09-01 03:47:01 -04:00
|
|
|
- Added a new interface class `TemplateInterface` to implement template classes
|
|
|
|
- Added new template PhpCliTemplate `phpcli`
|
|
|
|
- Added new template PhpLibraryTemplate `phplib`
|
2023-09-01 04:06:52 -04:00
|
|
|
- Added the ability to clean arrays in `\ncc\Utilities > Functions > cleanArray()`
|
2023-09-10 22:47:24 -04:00
|
|
|
- Added the ability to compile executable binaries for php using `gcc`
|
2023-09-21 17:24:12 -04:00
|
|
|
- Added support for Gitea repositories
|
|
|
|
- Added support for Packagist repositories
|
|
|
|
- Added a new default gitea repository `nocturn9x` git.nocturn9x.space
|
|
|
|
- Added a new default gitea repository `martinvlba` git.martinvlba.eu
|
|
|
|
- Added a new default gitea repository `kuny` git.it-kuny.ch
|
|
|
|
- Added dependency `composer/semver` version 3.4.0 for composer version comparison compatibility
|
|
|
|
- Added new class `\ncc\Classes > ArchiveExtractor` to extract multiple archive types
|
2023-08-17 14:32:47 -04:00
|
|
|
|
2023-08-17 14:02:41 -04:00
|
|
|
### Fixed
|
|
|
|
- Fixed MITM attack vector in `\ncc\Classes > HttpClient > prepareCurl()`
|
2023-08-27 01:04:35 -04:00
|
|
|
- Fixed all @throw tags in the project to use the correct exception class
|
2023-08-28 22:54:54 -04:00
|
|
|
- Fixed hash comparisons to use `hash_equals` implementations to combat against Timing Attacks
|
2023-08-17 14:02:41 -04:00
|
|
|
|
|
|
|
### Changed
|
|
|
|
- Corrected code-smell and code style issues in `\ncc\Classes > HttpClient`
|
2023-08-17 14:08:22 -04:00
|
|
|
- Corrected code-smell and code style issues in `\ncc\Classes > BashExtension > BashRunner`
|
2023-08-17 14:32:47 -04:00
|
|
|
- Corrected code-smell and code style issues in `\ncc\Classes > ComposerExtension > ComposerSourceBuiltin`
|
2023-08-17 14:40:49 -04:00
|
|
|
- Corrected code-smell and code style issues in `\ncc\Classes > GithubExtension > GithubService`
|
2023-08-17 15:44:56 -04:00
|
|
|
- Corrected code-smell and code style issues in `\ncc\Classes > GitlabExtension > GitlabService`
|
2023-08-17 16:09:42 -04:00
|
|
|
- Corrected code-smell and code style issues in `\ncc\Classes > NccExtension > ConstantCompiler`
|
2023-08-18 00:22:15 -04:00
|
|
|
- Renamed `Abstracts` namespace to `Enums`
|
|
|
|
- Updated class type to "final class" in `\ncc\Enums\Options > BuildConfigurationValues`
|
|
|
|
- Updated class type to "final class" in `\ncc\Enums\Options > InitializeProjectOptions`
|
|
|
|
- Updated class type to "final class" in `\ncc\Enums\Options > InstallPackageOptions`
|
|
|
|
- Updated class type to "final class" in `\ncc\Enums\SpecialConstants > AssemblyConstants`
|
|
|
|
- Updated class type to "final class" in `\ncc\Enums\SpecialConstants > BuildConstants`
|
|
|
|
- Updated class type to "final class" in `\ncc\Enums\SpecialConstants > DateTimeConstants`
|
|
|
|
- Updated class type to "final class" in `\ncc\Enums\SpecialConstants > InstallConstants`
|
|
|
|
- Updated class type to "final class" in `\ncc\Enums\SpecialConstants > RuntimeConstants`
|
|
|
|
- Updated class type to "final class" in `\ncc\Enums > AuthenticationType`
|
|
|
|
- Updated class type to "final class" in `\ncc\Enums > CompilerExtensionDefaultVersions`
|
|
|
|
- Updated class type to "final class" in `\ncc\Enums > CompilerExtensions`
|
|
|
|
- Updated class type to "final class" in `\ncc\Enums > CompilerExtensionSupportedVersions`
|
|
|
|
- Updated class type to "final class" in `\ncc\Enums > ComponentDataType`
|
|
|
|
- Updated class type to "final class" in `\ncc\Enums > ComponentFileExtensions`
|
|
|
|
- Updated class type to "final class" in `\ncc\Enums > ComposerPackageTypes`
|
|
|
|
- Updated class type to "final class" in `\ncc\Enums > ComposerStabilityTypes`
|
|
|
|
- Updated class type to "final class" in `\ncc\Enums > EncoderType`
|
|
|
|
- Updated class type to "final class" in `\ncc\Enums > ExceptionCodes`
|
|
|
|
- Updated class type to "final class" in `\ncc\Enums > HttpRequestType`
|
|
|
|
- Updated class type to "final class" in `\ncc\Enums > HttpStatusCodes`
|
|
|
|
- Updated class type to "final class" in `\ncc\Enums > LogLevel`
|
|
|
|
- Updated class type to "final class" in `\ncc\Enums > NccBuildFlags`
|
|
|
|
- Updated class type to "final class" in `\ncc\Enums > PackageStandardVersions`
|
|
|
|
- Updated class type to "final class" in `\ncc\Enums > PackageStructureVersions`
|
|
|
|
- Updated class type to "final class" in `\ncc\Enums > ProjectType`
|
|
|
|
- Updated class type to "final class" in `\ncc\Enums > RegexPattern`
|
|
|
|
- Updated class type to "final class" in `\ncc\Enums > RemoteSourceType`
|
|
|
|
- Updated class type to "final class" in `\ncc\Enums > Runners`
|
|
|
|
- Updated class type to "final class" in `\ncc\Enums > Scopes`
|
|
|
|
- Updated class type to "final class" in `\ncc\Enums > Versions`
|
2023-08-18 00:37:08 -04:00
|
|
|
- Corrected code-smell and code style issues in `src/installer/hash_check.php`
|
2023-08-17 14:40:49 -04:00
|
|
|
- Corrected code-smell and code style issues in `\ncc\Managers > ProjectManager`
|
|
|
|
- Corrected code-smell and code style issues in `\ncc\Objects\NccVersionInformation > Component`
|
|
|
|
- Corrected code-smell and code style issues in `\ncc\Objects\Package > Component`
|
|
|
|
- Corrected code-smell and code style issues in `\ncc\Managers > ConfigurationManager`
|
|
|
|
- Corrected code-smell and code style issues in `\ncc\Managers > CredentialManager`
|
|
|
|
- Refactored `\ncc\Utilities > PathFinder` to remove all Win32 references
|
|
|
|
- Corrected code-smell and code style issues in `\ncc\Objects > ExecutionPointers`
|
|
|
|
- Corrected code-smell and code style issues in `\ncc\Managers > ExecutionPointerManager`
|
|
|
|
- Corrected code-smell and code style issues in `\ncc\Utilities > Functions`
|
|
|
|
- Corrected code-smell and code style issues in `\ncc\Managers > PackageManager`
|
|
|
|
- Corrected code-smell and code style issues in `\ncc\Utilities > IO`
|
|
|
|
- Corrected code-smell and code style issues in `\ncc > ncc`
|
|
|
|
- Corrected code-smell and code style issues in `\ncc\CLI > Main`
|
2023-08-19 04:39:39 -04:00
|
|
|
- Corrected code-smell and code style issues in `\ncc\Objects > Package`
|
|
|
|
- Corrected code-smell and code style issues in `\ncc\Classes\NccExtension > PackageCompiler`
|
|
|
|
- Corrected code-smell and code style issues in `\ncc\CLI > PackageManagerMenu`
|
|
|
|
- Corrected code-smell and code style issues in `\ncc\Classes\PhpExtension > PhpCompiler`
|
|
|
|
- Corrected code-smell and code style issues in `\ncc\Classes\PhpExtension > PhpInstaller`
|
|
|
|
- Corrected code-smell and code style issues in `\ncc\Classes\PhpExtension > PhpRunner`
|
|
|
|
- Corrected code-smell and code style issues in `\ncc\Objects > ProjectConfiguraiton`
|
|
|
|
- Corrected code-smell and code style issues in `\ncc\Managers > ProjectManager`
|
|
|
|
- Corrected code-smell and code style issues in `\ncc\Classes\Extensions\PythonExtension > Python2Runner`
|
|
|
|
- Corrected code-smell and code style issues in `\ncc\Classes\Extensions\PythonExtension > Python3Runner`
|
|
|
|
- Corrected code-smell and code style issues in `\ncc\Classes\Extensions\PythonExtension > PythonRunner`
|
|
|
|
- Corrected code-smell and code style issues in `\ncc\Interfaces > RunnerInterface`
|
2023-08-19 04:48:23 -04:00
|
|
|
- Implemented interface `BytecodeObjectInterface` into `\ncc\Objects > Package`
|
|
|
|
- Implemented interface `BytecodeObjectInterface` into `\ncc\Objects > Vault`
|
|
|
|
- Corrected code-smell and code style issues in `\ncc\Objects > Vault`
|
|
|
|
- Implemented interface `BytecodeObjectInterface` into `\ncc\Objects > ProjectConfiguration`
|
2023-08-19 08:38:13 -04:00
|
|
|
- Implemented interface `BytecodeObjectInterface` into `\ncc\Objects > ExecutionPointers`
|
|
|
|
- Implemented interface `BytecodeObjectInterface` into `\ncc\Objects > DefinedRemoteSource`
|
|
|
|
- Implemented interface `BytecodeObjectInterface` into `\ncc\Objects\Vault > Entry`
|
|
|
|
- Corrected code-smell and code style issues in `\ncc\Objects\Vault\Password > AccessToken`
|
|
|
|
- Corrected code-smell and code style issues in `\ncc\Objects\Vault\Password > UsernamePassword`
|
|
|
|
- Extended `PasswordInterface` with `BytecodeObjectInterface`
|
|
|
|
- Implemented interface `BytecodeObjectInterface` into `\ncc\Objects\SymlinkDictionary > SymlinkEntry`
|
2023-08-19 11:06:11 -04:00
|
|
|
- Implemented interface `BytecodeObjectInterface` into `\ncc\Objects\ProjectConfiguration > UpdateSource`
|
|
|
|
- Implemented interface `BytecodeObjectInterface` into `\ncc\Objects\ProjectConfiguration > Project`
|
|
|
|
- Implemented interface `BytecodeObjectInterface` into `\ncc\Objects\ProjectConfiguration > Installer`
|
|
|
|
- Implemented interface `BytecodeObjectInterface` into `\ncc\Objects\ProjectConfiguration > ExecutionPolicy`
|
|
|
|
- Implemented interface `BytecodeObjectInterface` into `\ncc\Objects\ProjectConfiguration > Dependecy`
|
|
|
|
- Implemented interface `BytecodeObjectInterface` into `\ncc\Objects\ProjectConfiguration > Compiler`
|
|
|
|
- Implemented interface `BytecodeObjectInterface` into `\ncc\Objects\ProjectConfiguration > Build`
|
2023-08-19 12:24:42 -04:00
|
|
|
- Implemented interface `BytecodeObjectInterface` into `\ncc\Objects\ProjectConfiguration > Assembly`
|
|
|
|
- Implemented interface `BytecodeObjectInterface` into `\ncc\Objects\ProjectConfiguration\UpdateSource > Repository`
|
|
|
|
- Implemented interface `BytecodeObjectInterface` into `\ncc\Objects\ProjectConfiguration\ExecutionPolicy > Execute`
|
|
|
|
- Implemented interface `BytecodeObjectInterface` into `\ncc\Objects\ProjectConfiguration\ExecutionPolicy > ExitHandle`
|
|
|
|
- Implemented interface `BytecodeObjectInterface` into `\ncc\Objects\ProjectConfiguration\ExecutionPolicy > ExitHandlers`
|
|
|
|
- Implemented interface `BytecodeObjectInterface` into `\ncc\Objects\ProjectConfiguration\Build > BuildConfiguration`
|
2023-08-19 12:52:39 -04:00
|
|
|
- Updated `\ncc\Classes > GitClient > cloneRepository()` to throw `GitException` instead of `GitCloneException`
|
|
|
|
- Updated `\ncc\Classes > GitClient > checkout()` to throw `GitException` instead of `GitCheckoutException`
|
2023-08-21 18:49:09 -04:00
|
|
|
- Corrected code-smell and code style issues in `\ncc\Objects > PackageLock`
|
2023-08-21 23:14:13 -04:00
|
|
|
- Corrected code-smell and code style issues in `\ncc\Classes\PhpExtension > PhpRuntime`
|
2023-08-23 14:23:21 -04:00
|
|
|
- Updated class `\ncc\Objects\ProjectConfiguration > Dependency` to use method calls rather than direct property access
|
2023-08-27 01:04:35 -04:00
|
|
|
- Updated class `\ncc\Objects\ProjectConfiguration\Build > BuildConfiguration` to use method calls rather than direct
|
|
|
|
property access
|
|
|
|
- Updated class `\ncc\Objects\ProjectConfiguration\ExecutionPolicy > Execute` to use method calls rather than direct
|
|
|
|
property access
|
|
|
|
- Changed all uppercase occurrences of `NCC` to `ncc` in the entire project
|
|
|
|
- Corrected code-smell and code style issues in `\ncc\Utilities > Base64`
|
|
|
|
- Corrected code-smell and code style issues in `\ncc\Utilities > Console`
|
|
|
|
- Updated class `\ncc\Objects\ProjectConfiguration\ExecutionPolicy > ExitHandle` to use method calls rather than direct
|
|
|
|
property access
|
|
|
|
- Updated class `\ncc\Objects\ProjectConfiguration\ExecutionPolicy > ExitHandlers` to use method calls rather than
|
|
|
|
direct property access
|
|
|
|
- Updated class `\ncc\Objects\ProjectConfiguration\UpdateSource > Repository` to use method calls rather than direct
|
|
|
|
property access
|
|
|
|
- Updated class `\ncc\Objects\ProjectConfiguration > Assembly` to use method calls rather than direct property access
|
|
|
|
- Updated class `\ncc\Objects\ProjectConfiguration > Build` to use method calls rather than direct property access
|
|
|
|
- Updated class `\ncc\Objects\ProjectConfiguration > Compiler` to use method calls rather than direct property access
|
|
|
|
- Updated class `\ncc\Objects\ProjectConfiguration > ExecutionPolicy` to use method calls rather than direct property access
|
|
|
|
- Updated class `\ncc\Objects\ProjectConfiguration > Installer` to use method calls rather than direct property access
|
2023-08-27 11:41:11 -04:00
|
|
|
- Updated class `\ncc\Objects\ProjectConfiguration > Project` to use method calls rather than direct property access
|
|
|
|
- Updated class `\ncc\Objects\ProjectConfiguration > UpdateSource` to use method calls rather than direct property access
|
2023-08-28 18:27:09 -04:00
|
|
|
- Updated class `\ncc\Objects\ComposerJson > Author` to use method calls rather than direct property access and
|
|
|
|
implemented `SerializableObjectInterface`
|
|
|
|
- Updated class `\ncc\Objects\ComposerJson > Autoloader` to use method calls rather than direct property access and
|
|
|
|
implemented `SerializableObjectInterface`
|
|
|
|
- Updated class `\ncc\Objects\ComposerJson > Funding` to use method calls rather than direct property access and
|
|
|
|
implemented `SerializableObjectInterface`
|
|
|
|
- Updated class `\ncc\Objects\ComposerJson > NamespacePointer` to use method calls rather than direct property access
|
|
|
|
and implemented `SerializableObjectInterface`
|
|
|
|
- Updated class `\ncc\Objects\ComposerJson > PackageLink` to use method calls rather than direct property access and
|
|
|
|
implemented `SerializableObjectInterface`
|
|
|
|
- Updated class `\ncc\Objects\ComposerJson > Suggestion` to use method calls rather than direct property access and
|
|
|
|
implemented `SerializableObjectInterface`
|
|
|
|
- Updated class `\ncc\Objects\ComposerJson > Support` to use method calls rather than direct property access and
|
|
|
|
implemented `SerializableObjectInterface`
|
|
|
|
- Updated class `\ncc\Objects\ExecutionPointers > ExecutionPointer` to use method calls rather than direct property
|
|
|
|
access and implemented `BytecodeObjectInterface`
|
|
|
|
- Updated class `\ncc\Objects\NccVersionInformation > Component` to use method calls rather than direct property access
|
|
|
|
and implemented `SerializableObjectInterface`
|
|
|
|
- Updated class `\ncc\Objects\Package > Component` to use method calls rather than direct property access and
|
|
|
|
implemented `BytecodeObjectInterface`
|
|
|
|
- Updated class `\ncc\Objects\Package > ExecutionUnit` to use method calls rather than direct property access and
|
|
|
|
implemented `BytecodeObjectInterface`
|
|
|
|
- Updated class `\ncc\Objects\Package > Header` to use method calls rather than direct property access and implemented
|
|
|
|
`BytecodeObjectInterface`
|
|
|
|
- Updated class `\ncc\Objects\Package > Installer` to use method calls rather than direct property access and implemented
|
|
|
|
`BytecodeObjectInterface`
|
|
|
|
- Updated class `\ncc\Objects\Package > MagicBytes` to use method calls rather than direct property access and implemented
|
|
|
|
`SerializableObjectInterface`
|
|
|
|
- Updated class `\ncc\Objects\Package > Resource` to use method calls rather than direct property access and implemented
|
|
|
|
`BytecodeObjectInterface`
|
|
|
|
- Updated class `\ncc\Objects\PackageLock > DependencyEntry` to use method calls rather than direct property access
|
|
|
|
and implemented `BytecodeObjectInterface`
|
|
|
|
- Updated class `\ncc\Objects\PackageLock > PackageEntry` to use method calls rather than direct property access
|
|
|
|
and implemented `BytecodeObjectInterface`
|
|
|
|
- Updated class `\ncc\Objects\PackageLock > VersionEntry` to use method calls rather than direct property access
|
|
|
|
and implemented `BytecodeObjectInterface`
|
2023-08-28 18:31:59 -04:00
|
|
|
- Updated class `\ncc\Objects\SymlinkDictionary > SymlinkEntry` to use method calls rather than direct property access
|
2023-08-28 18:34:19 -04:00
|
|
|
- Updated class `\ncc\Objects\Vault\Password > AccessToken` to use method calls rather than direct property access
|
2023-08-28 22:54:54 -04:00
|
|
|
- Updated class `\ncc\Objects > CliHelpSection` to use method calls rather than direct property access
|
|
|
|
- Updated class `\ncc\Objects > ComposerJson` to use method calls rather than direct property access
|
|
|
|
- Updated class `\ncc\Objects > ComposerLock` to use method calls rather than direct property access
|
|
|
|
- Updated class `\ncc\Objects > DefinedRemoteSource` to use method calls rather than direct property access
|
|
|
|
- Updated class `\ncc\Objects > HttpRequest` to use method calls rather than direct property access and implemented
|
|
|
|
`SerializableObjectInterface`
|
|
|
|
- Updated class `\ncc\Objects > HttpResponse` to use method calls rather than direct property access and implemented
|
|
|
|
`SerializableObjectInterface`
|
2023-08-30 19:58:31 -04:00
|
|
|
- Corrected code-smell and code style issues in `\ncc\Objects > HttpResponseCache`
|
|
|
|
- Corrected code-smell and code style issues in `\ncc\Objects > InstallationPaths`
|
|
|
|
- Updated class `\ncc\Objects > NccVersionInformation` to use method calls rather than direct property access and implemented
|
|
|
|
`SerializableObjectInterface`
|
|
|
|
- Updated class `\ncc\Objects > Package` to use method calls rather than direct property access and implemented
|
|
|
|
`SerializableObjectInterface`
|
|
|
|
- Updated class `\ncc\Objects > PackageLock` to use method calls rather than direct property access and implemented
|
|
|
|
`BytecodeObjectInterface`
|
|
|
|
- Updated class `\ncc\Objects > ProjectConfiguration` to use method calls rather than direct property access
|
|
|
|
- Updated class `\ncc\Objects > ProjectDetectionResults` to use method calls rather than direct property access
|
|
|
|
- Updated class `\ncc\Objects > RemotePackageInput` to use method calls rather than direct property access
|
|
|
|
- Updated class `\ncc\Objects > RepositoryQueryResults` to use method calls rather than direct property access
|
|
|
|
- Updated class `\ncc\Objects > Vault` to use method calls rather than direct property access
|
2023-08-30 20:38:52 -04:00
|
|
|
- `\ncc\Objects\ProjectConfiguration > Compiler`: Added Public Constructor to automatically determine the minimum and
|
|
|
|
maximum supported compiler version for the selected extension
|
|
|
|
- `\ncc\Objects\ProjectConfiguration > Compiler > fromArray()` throws an ConfigurationException if the property `extension` is null
|
|
|
|
- `\ncc\Objects\ProjectConfiguration > Compiler > fromArray()` throws an NotSupportedException if the `extension` uses an
|
|
|
|
unsupported compiler extension
|
|
|
|
- `\ncc\Objects\ProjectConfiguration > Compiler > validate()` No longer accepts `$throw_exception` and throws an
|
|
|
|
`ConfigurationException` or `NotSupportedException` if the validation fails, otherwise it returns `True`.
|
|
|
|
- `\ncc\Objects\ProjectConfiguration > Project > fromArray()` Throws an `ConfigurationException` if the property `compiler`
|
|
|
|
is missing in the project configuration
|
|
|
|
- `\ncc\Objects > ProjectConfiguration > fromArray()` Throws an `ConfigurationException` if the property 'project' is
|
|
|
|
missing in the root configuration
|
|
|
|
- `\ncc\Objects\ProjectConfiguration > Project > __construct()` now requires the parameter `$compiler`
|
- `\ncc\Objects\ProjectConfiguration > Dependency > __construct()` now requires the parameters `$name`, `$source_type`,
`$source` and `$version`
- `\ncc\Objects\ProjectConfiguration > Dependency > fromArray()` Throws an `ConfigurationException` if the property
`name` is missing in the dependency configuration
- Also updated a bunch of objects in a similar fashion to the ones above, (BuildConfiguration, Execute, ExitHandle,
ExitHandler, Repository, Assembly, Build, Dependency, ExecutionPolicy, Installer, Project, UpdateSource) I'm not
going to list them all here, but you can find them in the commit history.
- Added a new interface class `ValidatableObjectInterface` to implement validatable objects, this method will throw a
`ConfigurationException` if the object is not valid or a `NotSupportedException` if the object contains methods that
are not supported by the current version of ncc or project.
2023-08-31 18:25:37 -04:00
|
|
|
- `\ncc\Objects\ProjectConfiguration > Dependency > __construct()` now requires the parameters `$name`, `$source_type`,
|
|
|
|
`$source` and `$version`
|
|
|
|
- `\ncc\Objects\ProjectConfiguration > Dependency > fromArray()` Throws an `ConfigurationException` if the property
|
|
|
|
`name` is missing in the dependency configuration
|
|
|
|
- Also updated a bunch of objects in a similar fashion to the ones above, (BuildConfiguration, Execute, ExitHandle,
|
|
|
|
ExitHandler, Repository, Assembly, Build, Dependency, ExecutionPolicy, Installer, Project, UpdateSource) I'm not
|
|
|
|
going to list them all here, but you can find them in the commit history.
|
2023-09-01 03:47:01 -04:00
|
|
|
- Implemented a template engine and refactored the CLI menu for the Project Manager and added a new `template` command
|
2023-09-04 21:56:07 -04:00
|
|
|
- Refactored the entire package structure to ncc package structure 2.0 for memory efficiency and performance
|
2023-09-10 22:47:24 -04:00
|
|
|
- Refactored execution unit system to use a new execution pointer system
|
|
|
|
- Refactored `PhpRunner` to use the new execution pointer system
|
|
|
|
- Refactored `BashRunner` to use the new execution pointer system
|
|
|
|
- Refactored `LuaRunner` to use the new execution pointer system
|
|
|
|
- Refactored `PerlRunner` to use the new execution pointer system
|
|
|
|
- Refactored `PythonRunner` to use the new execution pointer system
|
2023-09-21 17:24:12 -04:00
|
|
|
- Refactored `\ncc\Objects > RemoteRepository`
|
|
|
|
- Refactored the repository system
|
|
|
|
- Refactored Github's repository interface
|
|
|
|
- Refactored Gitlab's repository interface
|
|
|
|
- Refactored SourcesMenu in the CLI to use the new repository system
|
|
|
|
- Updated dependency `nikic/php-parser` to version 4.17.1
|
|
|
|
- Added a simple security measure in `\ncc\Objects\Value > Entry > unlock()` to delay returns randomly when the password
|
|
|
|
is incorrect
|
|
|
|
- Refactored the CLI menu system to use a return exit code system
|
|
|
|
- Updated the installer to remove unused components and installation steps
|
|
|
|
- Updated dependency `Symfony/Filesystem` to 6.3.1
|
|
|
|
- Updated dependency `Symfony/polyfill-ctype` to 1.28.0
|
|
|
|
- Enforced credential storage security by applying `600` permissions to the storage file so that only the owner can
|
|
|
|
read/write to the file, this will require root to do anything with the credential file. A password will still be
|
|
|
|
needed to decrypt entries in the file if any entries are encrypted.
|
|
|
|
- Updated dependency `Symfony/polyfill-mbstring` to 1.28.0
|
|
|
|
- Updated dependency `Symfony/polyfill-uuid` to 1.28.0
|
|
|
|
- Updated dependency `Symfony/Process` to 6.3.4
|
|
|
|
- Updated dependency `Symfony/Uid` to 6.3.0
|
|
|
|
- Updated dependency `Symfony/Yaml` to 6.3.3
|
|
|
|
- Refactored ZiProto
|
2023-08-30 19:58:31 -04:00
|
|
|
|
2023-08-17 14:40:49 -04:00
|
|
|
|
2023-08-19 08:44:24 -04:00
|
|
|
### Removed
|
2023-08-17 14:40:49 -04:00
|
|
|
- Removed `FileNotFoundException` and `DirectoryNotFoundException` from `\ncc\Exceptions`
|
|
|
|
- Removed the use of `InvalidScopeException` across the project
|
|
|
|
- Removed references of Win32 from the project as Windows is not going supported
|
|
|
|
- Removed unused exception `FileNotFoundException` in `\ncc\CLI > HelpMenu`
|
2023-08-19 04:48:23 -04:00
|
|
|
- Removed unused class `\ncc\Objects > SymlinkDictionary`
|
2023-08-19 12:52:39 -04:00
|
|
|
- Removed unused exception `GitCloneException` in `\ncc\Exceptions` in favor of `GitException`
|
|
|
|
- Removed unused exception `GitCheckoutException` in `\ncc\Exceptions` in favor of `GitException`
|
|
|
|
- Removed unused exception `GithubServiceException` in `\ncc\Exceptions` in favor of `GitException`
|
2023-08-19 12:56:31 -04:00
|
|
|
- Removed unused exception `GitTagsException` in `\ncc\Exceptions` in favor of `GitException`
|
2023-08-20 17:38:36 -04:00
|
|
|
- Removed unused exception `GitlabServiceException` in `\ncc\Exceptions` in favor of `GitException`
|
|
|
|
- Removed unused exception `UnsupportedArchiveException` in `\ncc\Exceptions` in favor of `ArchiveException`
|
|
|
|
- Removed unused exception `NotImplementedException` in `\ncc\Exceptions` in favor of `NotSupportedException`
|
|
|
|
- Removed unused exception `UnsupportedCompilerExtensionException` in `\ncc\Exceptions` in favor of `NotSupportedException`
|
|
|
|
- Removed unused exception `UnsupportedExtensionVersionException` in `\ncc\Exceptions` (not used)
|
2023-08-20 21:20:13 -04:00
|
|
|
- Removed unused exception `UnsupportedComponentTypeException` in `\ncc\Exceptions` in favor of `NotSupportedException`
|
|
|
|
- Removed unused exception `UnsupportedPackageException` in `\ncc\Exceptions` (not used)
|
|
|
|
- Removed unused exception `UnsupportedRemoteTypeSource` in `\ncc\Exceptions` (not used)
|
|
|
|
- Removed unused exception `UnsupportedProjectTypeException` in `\ncc\Exceptions` (not used)
|
2023-08-21 18:49:09 -04:00
|
|
|
- Removed unused exception `InvalidProjectConfigurationException` in `\ncc\Exceptions` in favor of `ConfigurationException`
|
|
|
|
- Removed unused exception `InvalidScopeException` in `\ncc\Exceptions` in favor of `InvalidArgumentException` (standard php)
|
|
|
|
- Removed unused exception `InvalidCredentialsEntryException` in `\ncc\Exceptions` (not used)
|
|
|
|
- Removed unused exception `ComponentNotFoundException` in `\ncc\Exceptions` in favor of `ConfigurationException`
|
|
|
|
- Removed unused exception `InvalidPackageNameException` in `\ncc\Exceptions` (not used)
|
|
|
|
- Removed unused exception `InvalidVersionNumberException` in `\ncc\Exceptions` (not used)
|
|
|
|
- Removed unused exception `InvalidProjectException` in `\ncc\Exceptions` in favor of `ConfigurationException`
|
|
|
|
- Removed unused exception `InvalidProjectNameException` in `\ncc\Exceptions` in favor of `ConfigurationException`
|
|
|
|
- Removed unused exception `BuildConfigurationNotFoundException` in `\ncc\Exceptions` in favor of `ConfigurationException`
|
2023-08-21 20:30:48 -04:00
|
|
|
- Removed unused exception `InvalidBuildConfigurationException` in `\ncc\Exceptions` (not used)
|
|
|
|
- Removed unused exception `InvalidPropertyValue` in `\ncc\Exceptions` in favor of `ConfigurationException`
|
|
|
|
- Removed unused exception `InvalidVersionConfiguration` in `\ncc\Exceptions` (not used)
|
|
|
|
- Removed unused exception `InvalidDependencyConfiguraiton` in `\ncc\Exceptions` (not used)
|
|
|
|
- Removed unused exception `ProjectConfigurationNotFoundException` in `\ncc\Exceptions` in favor of `ConfigurationException`
|
|
|
|
- Removed unused exception `UndefinedExecutionPolicyExpection` in `\ncc\Exceptions` in favor of `ConfigurationException`
|
|
|
|
- Removed unused exception `InvalidExecutionPolicyName` in `\ncc\Exceptions` (not used)
|
2023-08-21 20:46:00 -04:00
|
|
|
- Removed unused exception `AccessDeniedException` in `\ncc\Exceptions` in favor of `AuthenticationException`
|
2023-08-21 21:35:24 -04:00
|
|
|
- Removed unused exception `HttpException` in `\ncc\Exceptions` in favor of `NetworkException`
|
|
|
|
- Removed unused exception `ComposerDisabledException` in `\ncc\Exceptions` in favor of `ComposerException`
|
|
|
|
- Removed unused exception `ComposerNotAvailable` in `\ncc\Exceptions` in favor of `ComposerException`
|
|
|
|
- Removed unused exception `InternalComposerNotAvailable` in `\ncc\Exceptions` in favor of `ComposerException`
|
|
|
|
- Removed unused exception `PackagePreperationFailedException` in `\ncc\Exceptions` in favor of `PackageException`
|
|
|
|
- Removed unused exception `PackageParsingException` in `\ncc\Exceptions` in favor of `PackageException`
|
|
|
|
- Removed unused exception `MissingDependencyException` in `\ncc\Exceptions` (not used)
|
|
|
|
- Removed unused exception `PackageAlreadyInstalledException` in `\ncc\Exceptions` in favor of `PackageException`
|
|
|
|
- Removed unused exception `PackageFetchException` in `\ncc\Exceptions` in favor of `PackageException`
|
2023-08-21 23:14:13 -04:00
|
|
|
- Removed unused exception `PackageNotFoundException` in `\ncc\Exceptions` in favor of `PackageException`
|
|
|
|
- Removed unused exception `ConstantReadonlyException` in `\ncc\Exceptions` in favor of `IntegrityException` & `\InvalidArgumentException`
|
|
|
|
- Removed unused exception `InvalidConstantName` in `\ncc\Exceptions` in favor for `IntegrityException`
|
|
|
|
- Removed unused exception `ComponentDecodeException` in `\ncc\Exceptions` in favor for `IntegrityException`
|
|
|
|
- Removed unused exception `ResourceChecksumException` in `\ncc\Exceptions` in favor for `IntegrityException`
|
|
|
|
- Removed unused exception `AutoloadGeneratorException` in `\ncc\Exceptions` in favor for `IOException`
|
|
|
|
- Removed unused exception `SymlinkException` in `\ncc\Exceptions` in favor for `IOException`
|
|
|
|
- Removed unused exception `PackageLockException` in `\ncc\Exceptions` in favor for `IOException`
|
2023-08-23 11:44:32 -04:00
|
|
|
- Removed unused exception `UnitsNotFoundException` in `\ncc\Exceptions` (not used)
|
|
|
|
- Removed unused exception `NoAvailableUnitsException` in `\ncc\Exceptions` in favor for `OperationException`
|
|
|
|
- Removed unused exception `InstallationException` in `\ncc\Exceptions` in favor for `OperationException`
|
|
|
|
- Removed all unused exceptions from the project, reduced the number of exceptions in total.
|
2023-08-27 01:04:35 -04:00
|
|
|
- Removed unused `scope` property from `\ncc\Objects\ProjectConfiguration > Build`
|
2023-08-30 19:58:31 -04:00
|
|
|
- Removed unused `\ncc\Objects > NccUpdateInformation`
|
|
|
|
- Removed unused `\ncc\Objects > PhpConfiguration`
|
2023-08-30 20:38:52 -04:00
|
|
|
- Removed parameter `$throw_exception` from `\ncc\Objects\ProjectConfiguration > Project > validate()`
|
2023-09-10 22:47:24 -04:00
|
|
|
- Removed dependency `theseer\Autoload` in favor of ncc's own autoloader (screw you Arne Blankerts)
|
|
|
|
- Removed runners `Python2` & `Python3` in favor of `Python`
|
2023-09-21 17:24:12 -04:00
|
|
|
- Removed `\ncc\Classes\NccExtension > Runner` in favor of the new Execution Unit system
|
|
|
|
- Removed `\ncc\Managers > ExecutionPointerManager` in favor of the new Execution Unit system
|
2023-08-17 14:02:41 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
2023-08-16 21:04:03 -04:00
|
|
|
## [1.0.3] - 2023-08-16
|
2023-07-11 18:22:28 -04:00
|
|
|
|
|
|
|
### Changed
|
|
|
|
- Refactored `\ncc\Objects > PackageLock`
|
2023-07-11 18:31:54 -04:00
|
|
|
- Updated `defuse\php-encryption` to version 2.4.0
|
2023-07-11 19:20:11 -04:00
|
|
|
- Updated `\ncc\Classes > GitClient > cloneRepositor()` to clone submodules recursively by default
|
2023-07-13 19:24:28 -04:00
|
|
|
- Updated `\ncc\Classes > GitClient > checkout()` to update submoudles.
|
2023-08-16 21:04:03 -04:00
|
|
|
- Updated build system for Gitlab
|
2023-07-11 18:22:28 -04:00
|
|
|
|
2023-07-11 20:56:40 -04:00
|
|
|
### Fixed
|
|
|
|
- Fixed issue in `\ncc\Managers > ExecutionPointerManager > executeUnit()` where if ttyMode is enabled in a non-tty
|
|
|
|
environment, the process will throw an exception
|
|
|
|
"/etc/ncc/ThirdParty/Symfony/Process/Process.php:1019 Error: TTY mode requires /dev/tty to be read/writable.", now
|
|
|
|
ncc will display a warning if TTY mode cannot be enabled
|
|
|
|
|
2023-07-11 18:22:28 -04:00
|
|
|
|
2023-08-18 00:22:15 -04:00
|
|
|
|
2023-06-29 15:39:47 -04:00
|
|
|
## [1.0.2] - 2023-06-29
|
2023-02-24 21:42:39 -05:00
|
|
|
|
2023-02-24 22:32:28 -05:00
|
|
|
### Fixed
|
|
|
|
- Fixed issue where error states are not properly handled in `ExecutionPointerManager` issue [#44](https://git.n64.cc/nosial/ncc/-/issues/44)
|
2023-02-28 21:21:56 -05:00
|
|
|
- Updated \ncc\Managers > ExecutionPointerManager > executeUnit to set processes to run forever if a timeout is not set/null
|
2023-02-24 22:32:28 -05:00
|
|
|
|
2023-02-24 21:46:51 -05:00
|
|
|
### Changed
|
|
|
|
- Updated `Symfony\Filesystem` to version 6.2.5
|
2023-02-24 21:51:14 -05:00
|
|
|
- Updated `Symfony\polyfill-ctype` to version 1.27.0
|
2023-02-24 21:57:51 -05:00
|
|
|
- Updated `Symfony\polyfill-mbstring` to version 1.27.0
|
2023-02-24 22:01:07 -05:00
|
|
|
- Updated `Symfony\polyfill-uuid` to version 1.27.0
|
2023-02-24 22:04:50 -05:00
|
|
|
- Updated `Symfony\Process` to version 6.2.5
|
2023-02-24 22:12:24 -05:00
|
|
|
- Updated `Symfony\Uid` to version 6.2.5
|
2023-02-24 22:18:34 -05:00
|
|
|
- Updated `Symfony\Yaml` to version 6.2.5
|
2023-03-07 20:00:28 -05:00
|
|
|
- Updated `\ncc\Managers > PackageManager` to display more logging messages
|
2023-02-24 21:42:39 -05:00
|
|
|
|
2023-06-29 15:40:21 -04:00
|
|
|
### Added
|
2023-08-27 01:04:35 -04:00
|
|
|
- Dockerfile for building a docker image of ncc
|
2023-06-29 15:40:21 -04:00
|
|
|
|
2023-08-18 00:22:15 -04:00
|
|
|
|
|
|
|
|
2023-02-07 16:23:51 -05:00
|
|
|
## [1.0.1] - 2023-02-07
|
2023-02-05 16:42:47 -05:00
|
|
|
|
2023-02-07 15:47:34 -05:00
|
|
|
### Added
|
2023-03-02 16:30:34 -05:00
|
|
|
- Added file downloads progress
|
|
|
|
- Added pass-through arguments to `composer` command, all arguments beginning with `--composer-` will be passed to the
|
|
|
|
`composer` command, for example `--composer-dev` will be passed as `--dev` to the `composer` command
|
2023-02-07 15:47:34 -05:00
|
|
|
|
2023-02-05 16:42:47 -05:00
|
|
|
### Fixed
|
2023-03-02 16:30:34 -05:00
|
|
|
- Bug fix where resources are not decoded correctly when installing packages [#31](https://git.n64.cc/nosial/ncc/-/issues/42)
|
|
|
|
- Fixed issue where dependency conflicts are thrown even when `--reinstall` is used
|
|
|
|
- Properly implemented `composer.enable_internal_composer` so that warnings regarding improper configuration values are not thrown
|
|
|
|
- Minor improvements to the CLI interface including fixing `--version`
|
2023-02-05 16:42:47 -05:00
|
|
|
|
2023-02-07 15:34:08 -05:00
|
|
|
### Changed
|
2023-03-02 16:30:34 -05:00
|
|
|
- File downloads now cache the URL as a pointer to the file reducing the number of times the same file is downloaded
|
2023-02-07 15:34:08 -05:00
|
|
|
|
2023-08-18 00:22:15 -04:00
|
|
|
|
|
|
|
|
2023-02-05 16:42:47 -05:00
|
|
|
## [1.0.0] - 2022-01-29
|
|
|
|
|
|
|
|
### Added
|
2023-08-27 01:04:35 -04:00
|
|
|
- Initial release of ncc
|