- Set up your development environment. Just replace https://github.com/lichess-org/lila.git with https://github.com/WandererXII/lishogi.git and https://github.com/lichess-org/lila-ws.git with https://github.com/WandererXII/lila-ws.git. Install gulp-cli too.
- To play against AI and use server analysis install this as well https://github.com/WandererXII/shoginet. At least 4 GB RAM is needed to run it, 8 GB to work with lishogi + lila/ws + shoginet, and maybe 10 to run bloop + metals as well.
- Pick a GitHub issue to work on. The High priority tag might be useful.
- Communicate with other devs on Lishogi's Official Discord.
Make an issue. However, note that issues that provide little value compared to the required effort may be closed. Before creating an issue, make sure that:
- You list the steps to reproduce the problem to show that other users may experience it as well, if the issue is not self-descriptive.
- Search to make sure it isn't a duplicate. The advanced search syntax may come in handy.
- It is not a trivial problem or demand unrealistic dev time to fix.
Issue tickets on features that lack potential or effectiveness are not useful and may be closed. Discussions regarding whether a proposed new feature would be useful can be done on the Lishogi Feedback Forum to gauge feedback. The developers may also discuss the idea there, and if it is exemplary, a corresponding issue ticket will be made. When you're ready, make an issue ticket and link relevant, constructive comments regarding it in your issue ticket (such as a detailed Reddit post; linking to an empty forum thread with only your own commentary adds no value). Make sure that the feature you propose:
- Is effective in delivering a goal. A feature that adds nothing new is purely fancy; please develop a userscript or userstyle for your personal use instead.
- Doesn't rely on mundane assumptions. Non-technical people have the tendency to measure how difficult / easy a feature is to implement based on their unreliable instincts, and such assumptions wastes everyone's time. Point out what needs to happen, not what you think will happen.
- Is unique, if you're aiming to solve a problem. Features that can easily be replaced by easier ideas have little value and may not have to be brought up to begin with.
- Is clear and concise. If ambiguities exist, define them or propose options.
Check out Lishogi on crowdin.com.