Skip to content

Commit

Permalink
v0.4.1
Browse files Browse the repository at this point in the history
View changelog entry #76 for details.
  • Loading branch information
Sergix authored Sep 8, 2017
2 parents 99e0bd3 + ee32e1b commit 1d6c808
Show file tree
Hide file tree
Showing 46 changed files with 2,550 additions and 313 deletions.
3 changes: 0 additions & 3 deletions .classpath
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,4 @@
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
<classpathentry exported="true" kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="lib" path="libs/jnativehook-2.1.0.jar"/>
<classpathentry kind="output" path="src"/>
</classpath>
6 changes: 2 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,8 @@ build/tmp/
# test scripts
test.bat
target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst
*.class

target/
*.lst
*.class
target/classes/main/java/jterm/test.bat
.project

*.class
6 changes: 6 additions & 0 deletions .project
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,14 @@
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
</natures>
</projectDescription>
1 change: 0 additions & 1 deletion .settings/org.eclipse.core.resources.prefs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
eclipse.preferences.version=1
encoding//src/main/java=UTF-8
encoding//src/test/java=UTF-8
encoding/<project>=UTF-8
7 changes: 0 additions & 7 deletions .settings/org.eclipse.jdt.core.prefs
Original file line number Diff line number Diff line change
@@ -1,12 +1,5 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.7
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.source=1.7
4 changes: 0 additions & 4 deletions .settings/org.eclipse.m2e.core.prefs

This file was deleted.

4 changes: 1 addition & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,4 @@ language: java
jdk:
- oraclejdk8
notifications:
slack: sergix:qb9AYlJo8QqPybBY1FQ5V6my

# before_script: chmod +x compile.sh
slack: sergix:qb9AYlJo8QqPybBY1FQ5V6my
3 changes: 3 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"java.configuration.updateBuildConfiguration": "automatic"
}
64 changes: 61 additions & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,36 @@ These guidelines should be reviewed before contributing to the JTerm project.
## About
JTerm is a cross-platform terminal. The project is written in Java so that it can be run on virtually any computer. This document provides information such as project resources, guidelines, and other information needed to start programming for JTerm.

## Implementation
This project is written in Java using [Eclipse IDE for Java EE](http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/neon3).

## Code of Conduct
The Code of Conduct for any contributions and posting information can be found [here](/CODE_OF_CONDUCT.md).

## GitHub Branch
The development branch of the JTerm project is the `dev` branch. _**Make sure to work off of this branch, not the master!**_ All commits on the dev branch are tracked in the 'Dev' PR. This is the PR that is merged into master.

## Builds
Once you build a file from the source code to an archive (.jar), push it to the /build/jar folder, along with the associated changelog (see Changelog section), source code (see Source Code section), and documentation (see Documentation section.)

The format of the archive's filename is as follows: "jterm-v(build version).jar"

## Source Code
Keep all updated and current source code in the /src directory, which should be updated with every build. Please review the [Source Code Style Guide](https://github.com/Sergix/JTerm/blob/master/docs/SourceStyleGuide.md) for more information.

Subfolders are formatted for packaging and for CI integration.

When pushing the source code with a build, DO NOT change the filenames. As mentioned in the "Builds" section, package the source code with every build into a ".zip" file and a Wrapfile that should be placed in the /build/src directory when pushing a build. Subfolders in the /src directory (e.g. /src/main/java/...) should be included in packaged source. Wrapfiles should only include sources in the `main/` source directory. The format for the file should be as follows: `jterm-src-v(version).zip`, and `jterm-src-v(version).wrap`.

## Versioning
Version numbers should use [Semantic Versioning](https://github.com/mojombo/semver/blob/master/semver.md).
Numbering versions on files (such as released builds) should take the format of "vX.Y.Z", where "X.Y.Z" is the version.

## Documentation
Documentation is published with every:
- Major and minor release ([Documentation Style Guide](https://github.com/Sergix/JTerm/blob/master/docs/DocStyleGuide.md))
- Patch ([Patch Notes Documentation Style Guide](https://github.com/Sergix/JTerm/blob/master/docs/PatchDocStyleGuide.md))

## Styling
Source code, documentation, and patch note styling can be found here:
- [Source Code Style Guide](https://github.com/Sergix/JTerm/blob/master/docs/SourceStyleGuide.md)
Expand All @@ -18,7 +45,36 @@ Source code, documentation, and patch note styling can be found here:
Any of these types of files MUST be formatted as shown in these documents.

## Changelog
Any changes, in any branch, MUST be pushed to the changelog file found on the dev branch called "changelog.txt". View the "Changelog" section in the [README](/README.md) for more information. Do not push updates to changelog files on other branches; the dev one is to be the only one changed and updated.
Every time an update is pushed, the changelog will be updated and pushed as well. It is highly recommended that every time you build you update the changelog.

Once you add something to the changelog, DO NOT remove the entry, unless if, and only if, it is incorrect (such as a typo in the version number.) If you change a previous entry you must include a statement stating your change in a seperate entry.

The global changelog file is in the root folder of the project and is named "changelog.txt"; EVERY note will go into this file. It is also required that when you push a build you push an associated changelog file, formatted "jterm-changelog-(build version).txt". This file should be pushed to the /build/changelog directory.

Changelog entry headings must be formatted as shown in the given example below. New changelog entries in the global "changelog.txt" file should be placed at the _top_ of the file, not the bottom. Simply create a few newlines before the latest entry and use the newlines to enter the new entry information. Entries must also be tab-indented.

The format for a changelog entry is as follows:
```
(#(entry))[MM/DD/YYYY-HH:MM (version) (username)]
(entry contents)
(entry contents)
(blank newline)
```
Here is an example changelog:
```
(#2)[2/2/2017-3:33 1.3 NCSGeek]
information uploaded.
added files.
pushed to github.
(#1)[1/1/2017-3:33 1.0 Sergix]
information uploaded.
pushed to github.
```
Of course, a real changelog would be more descriptive in its entries.

Timestamps should be in 24-hour (aka military) time.

## Pull Requests
Pull Requests, of course, MUST be opened on a new branch. The branch and PR name must be short but descriptive of its topic. A description must be made of the PR's purpose and a short description of the added code. Every PR must request to be reviewed by @Sergix or @NCSGeek. Travis CI is also used in this project (dashboard can be found [here](https://travis-ci.org/Sergix/JTerm)), and PR's are automatically checked by Travis CI to make sure they are ready to be deployed.
Expand All @@ -34,5 +90,7 @@ If a new bug or issue is found, create a new Issue! The issue name must be short
- Version of JTerm
3. "Files and Code" - If you find where the issue is or believe it to be, put the filenames and/or code in this section.

## Source Code
When contributing new source code, edit the files contained in the `/src/main/java/jterm` directory. Create new files as shown in the [Source Code Style Guide](https://github.com/Sergix/JTerm/blob/master/docs/DocStyleGuide.md). The editor used can be any of your choosing, but we recommend [Eclipse](http://www.eclipse.org/). Do not create new directories unless required and given permission by @Sergix or @NCSGeek.
> JTerm 0.4.0
> `jterm-v0.4.0.jar`
> This project and its source are held under the GNU General Public License, located in the LICENSE file in the project's directory.
> (c) 2017
67 changes: 12 additions & 55 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,67 +2,24 @@

![Build Status](https://travis-ci.org/Sergix/JTerm.svg?branch=master)

## Definition
A terminal written for cross-platform usge.
## What is it?
A terminal written for cross-platform usage.

## Implementation
This project is written in Java using [Eclipse IDE for Java EE](http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/neon3).
## Why will it help me?
Because the JTerm project is written in Java, this provides it various advantages:
- System compatibility downsides don't exist!
- Much safer than C++/C and other system languages

## Contributing
View the [Contributing Guidelines](https://github.com/Sergix/JTerm/blob/master/CONTRIBUTING.md) for more information. The JTerm project is open to anyone and any code!

## Builds
Once you build a file from the source code to an archive (.jar), push it to the /build/jar folder, along with the associated changelog (see Changelog section), source code (see Source Code section), and documentation (see Documentation section.)
The format of the archive's filename is as follows: "jterm-v(build version).jar"

## Source Code
Keep all updated and current source code in the /src directory, which should be updated with every build.
Please review the [Source Code Style Guide](https://github.com/Sergix/JTerm/blob/master/docs/SourceStyleGuide.md) for more information.
Subfolders are formatted for packaging and for CI integration.
When pushing the source code with a build, DO NOT change the filenames.
As mentioned in the "Builds" section, package the source code with every build into a ".zip" file and a Wrapfile that should be placed in the /build/src directory when pushing a build. Subfolders in the /src directory (e.g. /src/main/java/...) should be included in packaged source. Wrapfiles should only include sources in the `main/` source directory.
The format for the file should be as follows: `jterm-src-v(version).zip`, and `jterm-src-v(version).wrap`.

## Changelog
Every time an update is pushed, the changelog will be updated and pushed as well.
It is highly recommended that every time you build you update the changelog. Once you add something to the changelog, DO NOT remove the entry, unless if, and only if, it is incorrect (such as a typo in the version number.) If you change a previous entry you must include a statement stating your change in a seperate entry.
The global changelog file is in the root folder of the project and is named "changelog.txt"; EVERY note will go into this file. It is also required that when you push a build you push an associated changelog file, formatted "jterm-changelog-(build version).txt". This file should be pushed to the /build/changelog directory.
Changelog entry headings must be formatted as shown in the given example below.
New changelog entries in the global "changelog.txt" file should be placed at the _top_ of the file, not the bottom. Simply create a few newlines before the latest entry and use the newlines to enter the new entry information. Entries must also be tab-indented.
The format for a changelog entry is as follows:
```
(#(entry))[MM/DD/YYYY-HH:MM (version) (username)]
(entry contents)
(entry contents)
(blank newline)
```
Here is an example changelog:
```
(#2)[2/2/2017-3:33 1.3 NCSGeek]
information uploaded.
added files.
pushed to github.
Plus, it's open source, so if you find any issues, you can help out everyone else using JTerm!

(#1)[1/1/2017-3:33 1.0 Sergix]
information uploaded.
pushed to github.
## Where do I get it?
Check the [releases](https://github.com/Sergix/JTerm/releases) page for binaries, as well as the source code. You can also look in the `/builds` directory for changelogs and other build-related stuff.

```
Of course, a real changelog would be more descriptive in its entries.

Timestamps should be in 24-hour (aka military) time.

## Versioning
Version numbers should use [Semantic Versioning](https://github.com/mojombo/semver/blob/master/semver.md).
Numbering versions on files (such as released builds) should take the format of "vX.Y.Z", where "X.Y.Z" is the version.

## Documentation
Documentation is published with every:
- Major and minor release ([Documentation Style Guide](https://github.com/Sergix/JTerm/blob/master/docs/DocStyleGuide.md))
- Patch ([Patch Notes Documentation Style Guide](https://github.com/Sergix/JTerm/blob/master/docs/PatchDocStyleGuide.md))
## How can I help?
View the [Contributing Guidelines](https://github.com/Sergix/JTerm/blob/master/CONTRIBUTING.md) for more information. The JTerm project is open to anyone and any code!

## Slack
The JTerm project now has a Slack messaging group! Request to join the [Sergix](https://sergix.slack.com/) team to recieve notifications on updates, Travis CI build status, and more on the #jterm channel.
The JTerm project now has a Slack messaging group! Request to join the [Sergix](https://sergix.slack.com/) team to recieve notifications on updates, Travis CI build status, and more!

> JTerm 0.4.0
> `jterm-v0.4.0.jar`
Expand Down
6 changes: 6 additions & 0 deletions build.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
@echo off
cls

rd /S /Q target

mvn clean package
54 changes: 54 additions & 0 deletions build/changelog/jterm-changelog-v0.4.1.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
Changelog entry:

(#76)[9/8/2017-18:55 0.4.1 Sergix]
Updated CONTRIBUTING.md with branch information.
Changed POM project version to 0.4.1.
Built binaries for version 0.4.1.
Wrote patch notes and compiled the full changelog.
Pushed updates to Git.

Full changes include:
- Created Pause class
- Pause.java
- Contains all code previously located in Exec that was associated with the `pause` command
- `EnterPause(options)`: pauses the interpreter until the Enter key is hit.
- Created Set class
- Set.java
- Contains all code previously located in Exec that was associated with the `set` command
- `set` now can be called from outside Exec
- `vars`: global program hashtable containing all variables
- `NewVar(options)`: creates a new variable
- `PrintVars()`: prints all variables currently stored
- Window class changes
- Added `Window.CloseAll()` function (JTerm automatically calls `CloseAll()` right before exiting the application)
- `Window.windows` array contains all active windows
- Created batch scripts for build and run processes
- `init.bat`: initializes the environment for building
- `build.bat`: builds with Maven (`mvn clean package`)
- `run.bat`: runs the application
- The Maven package process now builds two JAR's: one w/o dependencies and one with.
- If you perform the `run` batch script right after a build, it will rename the files to their respective names
- Packaged JAR, no dependencies (before name change w/ `run`): `jterm-0.5.0.jar`
- Packaged JAR, with dependencies (before name change w/ `run`): `jterm-0.5.0-jar-with-dependencies.jar`
- Packaged JAR, no dependencies (after name change w/ `run`): `jterm-0.5.0-no-deps.jar`
- Packaged JAR, with dependencies (after name change w/ `run`): `jterm-v0.5.0.jar`
- `Files.WriteFile()` input stream is closed when a blank line is entered
- Moved all non-JTerm-compatible switch cases from `Exec.Parse()` into `JTerm.Parse()`
- Added documentation comments for multiple functions
- Updated README and CONTRIBUTING
- Deleted the `Dir` and `readfile` branches
- Updated the POM to include build process changes
- Maven now runs a special plugin that packages all dependencies into the binary (maven-assembly-plugin)
- Merged [#17](https://github.com/Sergix/JTerm/pull/17). Thanks to @d4nntheman!
- Fixed [#14](https://github.com/Sergix/JTerm/issues/14)
- Fixed [#15](https://github.com/Sergix/JTerm/issues/15)
- Fixed [#16](https://github.com/Sergix/JTerm/issues/16)
- Fixed [#20](https://github.com/Sergix/JTerm/issues/20)
- Minor Bug Fixes
- `NewDir()` was not taking arguments with multiple spaces
- `WriteFile()` was not taking arguments with multiple spaces
- `Delete()` was not taking arguments with multiple spaces
- `Echo()` was outputting an extra space
- `ChangeDir()` accepts directory paths enclosed in quotes

More information provided in published patch notes documentation.
Binary file added build/jar/jterm-v0.4.1.jar
Binary file not shown.
Loading

0 comments on commit 1d6c808

Please sign in to comment.