events.action: opened
events.author: CheneyDing
events.text: <!--
  Thank you for working on PD! Please read PD's [CONTRIBUTING](https://github.com/pingcap/pd/blob/master/CONTRIBUTING.md) document **BEFORE** filing this PR.
  -->
  
  ### What problem does this PR solve? <!--add the issue link with summary if it exists-->
  https://github.com/pingcap/pd/issues/1787
events.title: proposal: pluggable PD scheduler
events.type: issue
events.action: created
events.author: lhy1024
events.text: would you like to address the problem that ci reported?
events.type: comment
events.action: created
events.author: lhy1024
events.text: /run-all-tests
events.type: comment
events.action: created
events.author: rleungx
events.text: Mostly looks good, but can we export `baseScheduler`? I think we don't need to implement `base_scheduler.go` when writing a scheduler plugin. Furthermore, the structure of the plugin directory can be simplified, such as:
  ```
  .
  └── scheduler_example
      ├── evict_leader.go
      └── Makefile
  ```
events.type: comment
events.action: created
events.author: rleungx
events.text: CI failed due to some unused functions:
  ```
  plugin/scheduler_example/evict_leader.go:79:6: `SchedulerType` is unused (deadcode)
  func SchedulerType() string {
       ^
  plugin/scheduler_example/evict_leader.go:84:6: `SchedulerArgs` is unused (deadcode)
  func SchedulerArgs() []string {
       ^
  ```
events.type: comment
events.action: created
events.author: CheneyDing
events.text: we need these two functions，because we need parameters to create the scheduler,
events.type: comment
events.action: created
events.author: rleungx
events.text: I think you can try it to disable warnings: https://github.com/golangci/golangci-lint#nolint
events.type: comment
events.action: created
events.author: nolouch
events.text: I will help to add an integration Testing after this PR. PTAL @rleungx @lhy1024
events.type: comment
events.action: created
events.author: rleungx
events.text: PTAL @shafreeck
events.type: comment
events.action: created
events.author: nolouch
events.text: /merge
events.type: comment
data_with_bots.bot: /run-all-tests
data_with_bots.meta: This message directly preceded comment from bot *sre-bot* by author *nolouch*:
data_with_bots.text: /merge
data_without_bots.meta: This message directly preceded comment from bot *sre-bot* by author *nolouch*:
data_without_bots.text: /merge