ncc/README.md

93 lines
3 KiB
Markdown
Raw Normal View History

2023-10-04 21:53:10 -04:00
# ![NCC](assets/icon/ncc@32px.png "NCC") Nosial Code Compiler
2022-04-02 22:59:12 -04:00
- 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` - Removed unused exception `FileNotFoundException` in `\ncc\CLI > HelpMenu` - 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` - 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 - Added new exception `PathNotFoundException` and implemented it in replacement for `DirectoryNotFoundException` and `FileNotFoundException` in `\ncc\Exceptions` - Corrected code-smell and code style issues in `src/installer/hash_check.php` - 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 `\ncc\Classes > NccExtension > ConstantCompiler` - Corrected code-smell and code style issues in `\ncc\Classes > GitlabExtension > GitlabService` - Corrected code-smell and code style issues in `\ncc\Classes > GithubExtension > GithubService`
2023-08-17 14:40:49 -04:00
[![wakatime](https://wakatime.com/badge/user/bc15cc8e-c9b9-4c11-bad9-3e3cfacf01e4/project/273bc06f-12e7-43d7-824d-40a78b02aada.svg)](https://wakatime.com/badge/user/bc15cc8e-c9b9-4c11-bad9-3e3cfacf01e4/project/273bc06f-12e7-43d7-824d-40a78b02aada)
2023-10-10 19:08:25 -04:00
Nosial Code Compiler is a package compiler, manager & installer for PHP. Allowing you to install and manage multiple
versions of php packages on your system that your PHP programs/projects can share and use. Additionally, ncc also allows
you to create a redistributable package of your PHP program/project in the form of a `.ncc` binary package file.
2022-05-09 20:07:53 +01:00
2023-10-10 19:08:25 -04:00
## Features
- [x] Package Manager
- [x] Support for repositories such as GitHub, GitLab, GitTea and Packagist
- [x] Package compiler
- [x] Execution Handler
- [x] Import System (*No need for autoloaders!*)
## Dependencies
- PHP 8.0 or higher
- php-mbstring extension
- php-zip extension
- php-mbcrypt extension
- php-ctype extension
- php-curl extension
## Documentation
Extensive documentation for ncc can be found on at [DOCUMENTATION.md](DOCUMENTATION.md), explaining how from how to
build and install ncc to how to use it, it is highly recommended that you read the documentation before using ncc.
## Bugs and issues
If you encounter any bugs or issues with ncc, please report them on the [issue tracker](https://git.n64.cc/nosial/ncc/-/issues).
2022-04-16 19:31:41 -04:00
2022-04-17 17:00:27 -04:00
2023-02-05 16:42:47 -05:00
## Changelog
2022-04-17 17:00:27 -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 - 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
The changelog for ncc can be found in the [CHANGELOG.md](CHANGELOG.md) file.
2022-04-17 17:00:27 -04:00
2023-10-10 19:08:25 -04:00
2023-01-29 23:27:56 +00:00
## Repository Mirrors
2022-04-17 17:00:27 -04:00
2023-10-10 19:08:25 -04:00
The official repository for ncc is hosted on [n64](https://git.n64.cc/nosial/ncc); however, you can also find
2023-01-29 23:27:56 +00:00
mirrors of the repository mirrored on different platforms, including
2023-10-10 19:08:25 -04:00
community-powered mirrors. (more to come)
2022-04-17 17:00:27 -04:00
2023-01-29 23:27:56 +00:00
- [git.it-kuny.ch](https://git.it-kuny.ch)
- [git.martinvlba.eu](https://git.martinvlba.eu/Nosial/ncc)
2023-07-13 19:15:31 -04:00
- [github.com](https://github.com/Nosial/ncc)
2022-05-24 20:51:20 -04:00
2022-04-17 16:37:59 -04:00
2023-01-29 23:27:56 +00:00
# Contributing
- 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
We welcome contributions to ncc! If you have an idea for how to improve the project, please don't hesitate to reach out.
2023-01-29 23:27:56 +00:00
There are many ways to contribute, and we appreciate all forms of support.
For more information on how to contribute, please read the [CONTRIBUTING.md](CONTRIBUTING.md) file.
2023-10-10 19:08:25 -04:00
2023-01-29 23:27:56 +00:00
# Code of Conduct
We are committed to maintaining a welcoming and inclusive environment for all contributors. Please read and follow our
[Code of Conduct](CODE_OF_CONDUCT.md).
2023-10-10 19:08:25 -04:00
2023-01-29 23:27:56 +00:00
# Authors
- Zi Xing Narrakas (netkas) <[netkas@n64.cc](mailto:netkas@64.cc)>
# Special Thanks
- Marc Gutt (mgutt) <[marc@gutt.it](mailto:marc@gutt.it)>
- Debusschère Alexandre ([debuss](https://github.com/debuss))
2023-10-10 19:08:25 -04:00
- badPointer <[https://git.n64.cc/badPointer](https://git.n64.cc/badPointer)>
- Cybersecbyte <[https://git.n64.cc/Cybersecbyte](https://git.n64.cc/Cybersecbyte)>
2023-01-29 23:27:56 +00:00
# Copyright
2023-10-10 19:08:25 -04:00
- Copyright (c) 2022-2023, Nosial—All Rights Reserved
2023-01-29 23:27:56 +00:00
2022-04-16 19:31:41 -04:00
# Licenses
- 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
ncc is licensed under the MIT License, see [LICENSE](LICENSE) for more information.
2023-10-10 19:08:25 -04:00
Multiple licenses for the open-source components used in this project can be found at [LICENSE](LICENSES)