sprinteins / ghost Goto Github PK
View Code? Open in Web Editor NEWThis is Ghost, an electron app for code quality analysis through git.
License: MIT License
This is Ghost, an electron app for code quality analysis through git.
License: MIT License
I think we should update the react dependency to the newest version. Currently its around 16.2 wich is pretty old (https://reactjs.org/versions more then 1 year old)
There doesn't appear to be a license attached to the project yet. If one has already been selected it should be added to the root folder as LICENSE.txt or similar. There wasn't enough information on the goals of the project for me to suggest a specific license, but here are a couple good resources to help with the decision process:
https://opensource.org/licenses
https://choosealicense.com/
Why is this important? Without a license the project has zero control over how the code is used, modified, named, in the future, and it may be difficult to assert those rights in the future if the project chooses to change. Also, a license can be used to express that there are no warranties that come with the code, which could help guard against liability issues should someone use the code. Even if the project doesn't plan to enforce any rules about the work, a lack of a license could make others wary to use it since it is unclear what the implications could be.
Ability to search downwards from a defined folder
A kind of browser would be nice where we start at the root and we can go deeper and deeper.
At any level the statistics should be a sum of every sub-folders' and files' stats.
somewhat similar to the git ignore
eg for i18n
PR #43
We need the ghost icon as an app-icon
PR #39
Files can get renamed in the development process. These changes are logged in their git history and thus are shown that way in the tables {oldfilename => newfilename}.
Suggestion: identify and summarize these files into one entry and list the current name in the table.
After the table is rendered, sorting leads to row-switches in the table.
Steps to reproduce: open a repo and sort twice by the same column
Expected behaviour: the order of rows should not flip
Actual behaviour: entries switch rows
separate git/index.js functions (rendering, git log, formatting)
I guess this project is developed with VS Code. If that´s correct, one might add a .vscode folder + config with given formatting standards. This might prevent e.g. auto-formatting from changing single to double quotes
eg string, array, ...
PR #40
Leave tools and tips here :)
In its current state, the table will use all given space. If the window gets resized or if the table content exceeds the given windowsize, the content doesn't break lines.
Suggestion: A more responsive behaviour for the table.
Adds the possibility to save the used parameters as default values
While opening a repo for the first time runs fine, opening the same repo a second time will cause the process to slow down and render wrong entries (date is unknown for example).
Steps to reproduce: load the same repo twice
Expected behaviour: both times should show the same tables and be equally fast
Real behaviour: the second time is slower and shows wrong entries
We should merge master into all of the the pullrequest branches to be able to run the tests on travis.
propose: colorized svgs, in future animated
I would highly recommend sorting the initial load of the repository stats in descending order of occurances.
With this, the user will see the files at top, that have the highest occurance statistik and are thus more likely to be refactored.
After my meetup with @trusz he wanted to switch to typescript
In the current state, Ghost logs every filetype and shows that in the table. This includes files like package.json or localization, that users may or may not find useful.
Suggestion: adding some kind of filteroption for the table to exclude filetypes or folders
In the current state, Ghost can sort the tablecolumns in descending alphabetical or numeralorders.
Suggestion: Sorting in ascending order
The Linux jobs fail due to the above mentioned error
Copied error message:
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] test: npm run build &&mocha --exit
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] test script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /home/travis/.npm/_logs/2019-07-29T08_43_49_381Z-debug.log
The command "if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then xvfb-run npm run test; else npm run test; fi" exited with 1.
The tests for sorting the table are failing, due to changes in the mocked showOpenDialog reference.
This was introduced in pull request #60.
A lot of entries for the tables can get very confusing. But sometimes, a user only wants to look for statistics in certain in certain filetypes.
How about replacing the menu with a custom one (, ditch the classic (File) (Edit) (View) (Window) (Help))? I'd like to use it for the 'save-parameter' branch to implement two submenus: [save parameters] and [reset parameters]. With this method the buttons don't have to occupy screenspace but could still be accessed with ease in a few clicks and via custom short-cuts.
Feel free to add menu suggestions as a comment. Please go by (menu[submenu][submenu])
PR #37
Think about using https://www.npmjs.com/package/dotenv so we dont have diffrent scripts for windows and linux just for the environment variables (start-dev and start-dev-win)
I think we need a "my repos"-screen, where you can set the current repo as well as adding a new repo.
Maybe via a dropdown selector and a button to add the currently open repo to the list
PR #42
Additional information about the file and its history would be useful.
Suggestion: add click-event on every fileentry in the table, that returns a new window with the git log of that file.
if it is possible to exclude files from travis. e.g. a readme update is currently beeing checked by travis.
When running the newest release of ghost (1.2.0), the page connected to the help button is empty.
PR #36
PR #41
Think about adding this back to the travis.yaml
cache:
yarn: true
directories:
- $HOME/.cache/electron
- $HOME/.cache/electron-builder
- $HOME/.npm/_prebuilds
before_cache:
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then rm -rf $HOME/.cache/electron-builder/wine; fi
We were not able to use electron-reloader. Think about a better way to reload (currently it restarts the app on build)
A long table can result in quite a lot of scrolling, and again some scrolling to get back to the top to do another analyse.
Suggestion: A way to jump back to the "open repo"-button
To further improve code quality and to make development and reviewing pullrequests easier, we will implement an automated testing pipeline with Travis
I strongly recommend updating the babel-config (.babelrc). To something like this:
{
"presets": ["@babel/preset-env","@babel/preset-react"],
"plugins": [
"@babel/plugin-proposal-class-properties"
]
}
This will allow you to setting class-properties outside the constructor
class Test{
myValue="1"
}
And also adds the possibility to use arrow-functions instead of bind(this).
Example:
class Test{
onInputChange=(event)=>{
console.log(this);
// this will always be the instance of the
// class because arrow functions get
// transpieled to function.bind(this)
}
render(){
return (<div>
<input
onChange={this.onInputChange}/>
</div>)
}
}
(If performance is a problem, dont use arrow-functions inline inside the render function)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.