ncc/CHANGELOG.md
Netkas dc7fcfc757
- 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
 - Fixed all @throw tags in the project to use the correct exception class
 - Removed unused `scope` property from `\ncc\Objects\ProjectConfiguration > Build`
2023-08-27 01:04:35 -04:00

19 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[1.0.4] - Unreleased

This update introduces major changes in the codebase, including the removal of Win32 support, and the addition of new features and reduced the number of exceptions down to 15 exceptions.

Added

  • LICENSE.md & license.md are now detected as license files in \ncc\Classes\ComposerExtension > ComposerSourceBuiltin > convertProject()
  • Added new exception PathNotFoundException and implemented it in replacement for DirectoryNotFoundException and FileNotFoundException in \ncc\Exceptions
  • Added a new interface class BytecodeObjectInterface which will be used to implement object types for compiled assets
  • Added new exception GitException in \ncc\Exceptions to replace all git related exceptions
  • Added new exception PackageException in \ncc\Exceptions to replace all package related exceptions
  • Added new exception OperationException in \ncc\Exceptions to replace all generic related exceptions

Fixed

  • Fixed MITM attack vector in \ncc\Classes > HttpClient > prepareCurl()
  • Fixed all @throw tags in the project to use the correct exception class

Changed

  • Corrected code-smell and code style issues in \ncc\Classes > HttpClient
  • Corrected code-smell and code style issues in \ncc\Classes > BashExtension > BashRunner
  • Corrected code-smell and code style issues in \ncc\Classes > ComposerExtension > ComposerSourceBuiltin
  • Corrected code-smell and code style issues in \ncc\Classes > GithubExtension > GithubService
  • Corrected code-smell and code style issues in \ncc\Classes > GitlabExtension > GitlabService
  • Corrected code-smell and code style issues in \ncc\Classes > NccExtension > ConstantCompiler
  • 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
  • Corrected code-smell and code style issues in src/installer/hash_check.php
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • Updated \ncc\Classes > GitClient > cloneRepository() to throw GitException instead of GitCloneException
  • Updated \ncc\Classes > GitClient > checkout() to throw GitException instead of GitCheckoutException
  • Corrected code-smell and code style issues in \ncc\Objects > PackageLock
  • Corrected code-smell and code style issues in \ncc\Classes\PhpExtension > PhpRuntime
  • Updated class \ncc\Objects\ProjectConfiguration > Dependency to use method calls rather than direct property access
  • 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

Removed

  • 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
  • Removed unused class \ncc\Objects > SymlinkDictionary
  • 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
  • Removed unused exception GitTagsException in \ncc\Exceptions in favor of GitException
  • 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)
  • 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)
  • 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
  • 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)
  • Removed unused exception AccessDeniedException in \ncc\Exceptions in favor of AuthenticationException
  • 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
  • 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
  • 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.
  • Removed unused scope property from \ncc\Objects\ProjectConfiguration > Build

[1.0.3] - 2023-08-16

Changed

  • Refactored \ncc\Objects > PackageLock
  • Updated defuse\php-encryption to version 2.4.0
  • Updated \ncc\Classes > GitClient > cloneRepositor() to clone submodules recursively by default
  • Updated \ncc\Classes > GitClient > checkout() to update submoudles.
  • Updated build system for Gitlab

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

[1.0.2] - 2023-06-29

Fixed

  • Fixed issue where error states are not properly handled in ExecutionPointerManager issue #44
  • Updated \ncc\Managers > ExecutionPointerManager > executeUnit to set processes to run forever if a timeout is not set/null

Changed

  • Updated Symfony\Filesystem to version 6.2.5
  • Updated Symfony\polyfill-ctype to version 1.27.0
  • Updated Symfony\polyfill-mbstring to version 1.27.0
  • Updated Symfony\polyfill-uuid to version 1.27.0
  • Updated Symfony\Process to version 6.2.5
  • Updated Symfony\Uid to version 6.2.5
  • Updated Symfony\Yaml to version 6.2.5
  • Updated \ncc\Managers > PackageManager to display more logging messages

Added

  • Dockerfile for building a docker image of ncc

[1.0.1] - 2023-02-07

Added

  • 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

Fixed

  • Bug fix where resources are not decoded correctly when installing packages #31
  • 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

Changed

  • File downloads now cache the URL as a pointer to the file reducing the number of times the same file is downloaded

[1.0.0] - 2022-01-29

Added

  • Initial release of ncc