Below you will find a basic workflow of how the branches should work. Please follow this to prevent bad merge conflicts on Miki and things constantly breaking.
- Pull the latest changes from the master branch.
- Create a new working branch based off the last commit from the master branch.
- Branches should be named as follows:
- update_name: For LARGE updates that will take a while to update. Smaller hotfix updates will be merged into this if they are released before the large update.
- (e.g., update_v2.0.1)
- hf_name: For SMALLER hotfix updates that will be pushed out before larger updates are completed. These will be merged back into master AND the update branches whenever they are released.
- (e.g., hf_fixmarrycommand)
- helper_name_date: For helper-related changes (such as cleaning up code, web documentation updates, etc), that need to be approved by Veld before they can be merged into any other branches.
- (e.g., helper_veld_201610 or helper_documentation_201610)
- update_name: For LARGE updates that will take a while to update. Smaller hotfix updates will be merged into this if they are released before the large update.
- Branches should be named as follows:
- Make your changes in the branch you have just created.
- Commit those changes, and then push the branch to the remote git repository.
- When changes are approved and are ready for release, the branch will be merged into the master branch.
- Note: The working branch at this time will be deleted from the repository.
- AWSSDK.S3
- Entity Framework 6.0
- Imgur.API
- Miki.Anilist
- Miki.Cache
- Miki.Configuration
- Miki.Discord
- Miki.Dsl
- Miki.Logging
- Miki.Rest
- Newtonsoft.Json
- Npgsql
- CountLib
- Miki.Patreon
- SharpRaven
- SteamKit2
Bot invite: https://discordapp.com/oauth2/authorize?&client_id=160185389313818624&scope=bot
Documentation: https://github.com/velddev/Miki/wiki
Issues: https://github.com/velddev/Miki/issues
Patreon: https://www.patreon.com/mikibot
Support server: https://discord.gg/55sAjsW
Yes, in its current state this process is tedious. However, there will be an installer in the future that will make getting started much simpler.
Currently the Miki API is private, meaning you won't have access to the leaderboards until the API is released publicly. More information will be available here when that happens.
If you have any questions about the setup process do not ask in the support server, as a majority of the people there will not be able to assist you. DM Xetera#9596 for questions instead.
-
Clone the Miki repository.
-
Install Miki.Framework and Miki.Rest through NuGet or clone them as well, along with the other dependencies.
-
Add your bot token in Miki/miki/settings.json.
-
Download RabbitMQ and have the service running.
-
Download Redis and get that running too.
-
Download PostgreSQL and set up a database called
Miki
. -
Configure your connection string in Miki/miki/settings.json as such (if using localhost):
"connection_string": "Server=127.0.0.1;Port=5432;User Id=postgres;Database=Miki;"
- Install the
uuid-ossp
postgres extensions on theMiki
database.
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
-
Run existing migrations inside the base Miki solution through the NuGet Package Manager Console with
Update-Database
- Tools -> NuGet Package Manager -> Package Manager Console
-
Navigate to
Miki.Framework
and runUpdate-Database
to apply the migrations there as well. -
Clone the gateway repository in a separate location.
-
Download Node.js if you don't have it installed already.
-
Run
npm install
in the sharder download location to setup the dependencies. -
Create a
config.js
by copy pasting the format fromconfig.js.example
and filling in your bot token. -
Run
node gateway.js
. -
Run Miki. 🎉
These will likely be fixed in the near future (if it's not already by the time you're reading this):
-
A lack of API keys might be giving you issues in the
DonatorModule
andFunModule
, the simplest way to solve it is to just comment out the lines that raise exceptions and the lines that reference the client (there shouldn't be more than 2 reference max, if so, you're doing something wrong). -
If you're having trouble running migrations make sure your
EntityFramework
for both baseMiki
andMiki.Framework
is on version 2.0.1-2.0.3 NOT 2.1.1.