1. 16 6月, 2016 21 次提交
    • J
      Merge branch 'issue_18575' into 'master' · 5f22603b
      Jacob Schatz 提交于
      Improve usability for prioritized labels
      
      ## What does this MR do?
      - Adds an icon next to prioritized label rows serving as a hint to the user that the labels can be sorted by dragging them.
      - Adds description about prioritized labels.
      - Restores empty message when removing all prioritized labels.
      
      ## Screenshots (if relevant)
      
      ![labels](/uploads/1da16c4c54a894fa45ccc47e3a5bdf7a/labels.gif)
      
      Closes #18575 
      
      See merge request !4652
      5f22603b
    • J
      Merge branch 'new-project-mobile' into 'master' · 7094a4d7
      Jacob Schatz 提交于
      New Project page improvements for mobile
      
      ## What does this MR do?
      
      Redesigns the "Project path" fields on the New Project page.
      
      ## Are there points in the code the reviewer needs to double check?
      
      Not that I know of, nothing I changed should break any other pages.
      
      ## Why was this MR needed?
      
      The new project page was unusable on mobile because the project name text field didn't have enough space.
      
      ## What are the relevant issue numbers?
      
      Fixes #18599.
      
      ## Screenshots (if relevant)
      
      Before:
      
      ![Screen_Shot_2016-06-15_at_12.38.58_PM](/uploads/046a824b283e24266cabc9ea3dfb169c/Screen_Shot_2016-06-15_at_12.38.58_PM.png)
      
      After:
      
      ![Screen_Shot_2016-06-15_at_12.37.19_PM](/uploads/6d01310192965b413bfedd9c8d2129f7/Screen_Shot_2016-06-15_at_12.37.19_PM.png)
      
      ![Screen_Shot_2016-06-15_at_12.37.28_PM](/uploads/3944a0f0ab04373ec92f7cafe90872df/Screen_Shot_2016-06-15_at_12.37.28_PM.png)
      
      ## Does this MR meet the acceptance criteria?
      
      - [ ] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added
      - [ ] Tests
        - [x] Added for this feature/bug
        - [ ] All builds are passing
      - [x] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides)
      - [ ] Branch has no merge conflicts with `master` (if you do - rebase it please)
      - [ ] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits)
      
      cc: @jschatz1 @dzaporozhets 
      
      See merge request !4687
      7094a4d7
    • J
      Merge branch 'pinned-sidebar' into 'master' · 64a09d6e
      Jacob Schatz 提交于
      Pinned sidebar navigation option
      
      ## What does this MR do?
      
      Gives the ability to pin the sidebar navigation. Pinning is only possible on screens with above `lg` which is `1200px` if not it reverts to being hidden by default.
      
      ## What are the relevant issue numbers?
      
      Closes #18542 
      
      ## Screenshots (if relevant)
      
      ### Un-pinned
      
      ![Screen_Shot_2016-06-15_at_17.29.08](/uploads/82b7495df6ea46a2334a7c25d03b019b/Screen_Shot_2016-06-15_at_17.29.08.png)
      
      ### Pinned
      
      ![Screen_Shot_2016-06-15_at_17.29.41](/uploads/3eb381be807985d0a9583f000cb802f9/Screen_Shot_2016-06-15_at_17.29.41.png)
      
      See merge request !4683
      64a09d6e
    • R
      Merge branch 'update-changelog-8.8.5' into 'master' · 02dfbca3
      Robert Speicher 提交于
      Update CHANGELOG for 8.8.5 release
      
      [ci skip]
      
      See merge request !4688
      02dfbca3
    • S
      Merge branch 'fair-usage-of-shared-runners' into 'master' · 919e3ed2
      Stan Hu 提交于
      Fair usage of Shared Runners
      
      ## What does this MR do?
      
      Introduces a fair usage scheduler for shared runners.
      
      It tries to assign builds to shared runner from projects that have the lowest number of builds currently running on shared runners.
      
      **Example 1**:
      ```
      We have following builds in queue:
      build 1 for project 1
      build 2 for project 1
      build 3 for project 1
      build 4 for project 2
      build 5 for project 2
      build 6 for project 3
      
      With the new algorithm we will assign builds in following order:
      - We choose build 1, because project 1 doesn't run currently any builds and has the lowest build number from projects that doesn't run builds,
      - We choose build 4, because project 2 doesn't run currently any builds and has the lowest build number from projects that doesn't run builds,
      - We choose build 6, because project 3 doesn't run currently any builds and has the lowest build number from projects that doesn't run builds,
      - We choose build 2, because project 1 as other it runs 1 build,
      - We choose build 5, because project 2 runs 1 build, where project 1 runs 2 builds now,
      - We choose build 3, because project 1 and runs 2 builds.
      ```
      
       
      **Example 2**:
      ```
      We have following builds in queue:
      build 1 for project 1
      build 2 for project 1
      build 3 for project 1
      build 4 for project 2
      build 5 for project 2
      build 6 for project 3
      
      With the new algorithm we will assign builds in following order:
      - We choose build 1, because project 1 doesn't run currently any builds and has the lowest build number from projects that doesn't run builds,
      - We finish build 1,
      - We choose build 2, because project 1 doesn't run currently any builds and has the lowest build number from projects that doesn't run builds,
      - We choose build 4, because project 2 doesn't run currently any builds and has the lowest build number from projects that doesn't run builds,
      - We finish build 4,
      - We choose build 5, because project 2 doesn't run currently any builds and has the lowest build number from projects that doesn't run builds,
      - We choose build 6, because project 3 doesn't run currently any builds,
      - We choose build 3, because project 1, 2 and 3 runs exactly one build now,
      ```
      
      ## Why was this MR needed?
      
      Currently, we are scheduling builds using FIFO. This is catastrophic if there are projects that create a 100-300 jobs, this basically eats most of available shared runners.
      
      ## Performance
      
      All this logic is implemented with the help of SQL queries, because this is the fastest way to process 1k-2k pending builds in queue.
      It's not the fastest SQL query, because it sorts based on number of running_builds, and this forces to calculate a number of running builds for all dependent projects. However, since we have one/two shared runners that asks every few seconds for builds this should have minimal impact on DB performance.
      
      ```
       explain analyze SELECT "ci_builds".* FROM "ci_builds" JOIN (SELECT "ci_builds"."gl_project_id", count(case when status = 'running' AND runner_id = (SELECT "ci_runners"."id" FROM "ci_runners" WHERE "ci_runners"."is_shared" = 't') then 1 end) as running_builds FROM "ci_builds" INNER JOIN "projects" ON "projects"."id" = "ci_builds"."gl_project_id" AND "projects"."pending_delete" = 'f' WHERE "ci_builds"."type" IN ('Ci::Build') AND "ci_builds"."status" IN ('running', 'pending') AND "projects"."builds_enabled" = 't' AND "projects"."shared_runners_enabled" = 't' GROUP BY "ci_builds"."gl_project_id") AS projects ON ci_builds.gl_project_id=projects.gl_project_id WHERE "ci_builds"."type" IN ('Ci::Build') AND "ci_builds"."status" = 'pending' AND "ci_builds"."runner_id" IS NULL  ORDER BY projects.running_builds ASC, ci_builds.id ASC;
                                                                                        QUERY PLAN                                                                        
                 
      --------------------------------------------------------------------------------------------------------------------------------------------------------------------
      -----------
       Sort  (cost=64777.28..64777.29 rows=1 width=1010) (actual time=301.794..302.535 rows=1537 loops=1)
         Sort Key: (count(CASE WHEN (((public.ci_builds.status)::text = 'running'::text) AND (public.ci_builds.runner_id = $0)) THEN 1 ELSE NULL::integer END)), public.ci
      _builds.id
         Sort Method: quicksort  Memory: 1423kB
         ->  Nested Loop  (cost=63279.78..64777.27 rows=1 width=1010) (actual time=66.384..298.724 rows=1537 loops=1)
               ->  HashAggregate  (cost=63177.15..63177.30 rows=15 width=15) (actual time=65.641..65.851 rows=187 loops=1)
                     InitPlan 1 (returns $0)
                       ->  Seq Scan on ci_runners  (cost=0.00..26963.66 rows=1 width=4) (actual time=1.145..34.381 rows=1 loops=1)
                             Filter: is_shared
                             Rows Removed by Filter: 6965
                     ->  Nested Loop  (cost=0.00..36186.34 rows=2715 width=15) (actual time=0.065..29.717 rows=1710 loops=1)
                           ->  Index Scan using index_ci_builds_on_status on ci_builds  (cost=0.00..8913.95 rows=3577 width=15) (actual time=0.051..12.012 rows=2583 loops
      =1)
                                 Index Cond: ((status)::text = ANY ('{running,pending}'::text[]))
                                 Filter: ((type)::text = 'Ci::Build'::text)
                                 Rows Removed by Filter: 1219
                           ->  Index Scan using projects_pkey on projects  (cost=0.00..7.61 rows=1 width=4) (actual time=0.003..0.004 rows=1 loops=2583)
                                 Index Cond: (id = public.ci_builds.gl_project_id)
                                 Filter: ((NOT pending_delete) AND builds_enabled AND shared_runners_enabled)
                                 Rows Removed by Filter: 0
               ->  Bitmap Heap Scan on ci_builds  (cost=102.63..106.64 rows=1 width=1002) (actual time=1.216..1.231 rows=8 loops=187)
                     Recheck Cond: ((gl_project_id = public.ci_builds.gl_project_id) AND ((status)::text = 'pending'::text))
                     Filter: ((runner_id IS NULL) AND ((type)::text = 'Ci::Build'::text))
                     ->  BitmapAnd  (cost=102.63..102.63 rows=1 width=0) (actual time=1.201..1.201 rows=0 loops=187)
                           ->  Bitmap Index Scan on index_ci_builds_on_gl_project_id  (cost=0.00..10.52 rows=241 width=0) (actual time=0.406..0.406 rows=1944 loops=187)
                                 Index Cond: (gl_project_id = public.ci_builds.gl_project_id)
                           ->  Bitmap Index Scan on index_ci_builds_on_status  (cost=0.00..91.78 rows=3089 width=0) (actual time=0.652..0.652 rows=3362 loops=187)
                                 Index Cond: ((status)::text = 'pending'::text)
       Total runtime: 303.832 ms
      ```
      
      ## Specific runners
      
      It doesn't affect the specific runners which still serve builds FIFO.
      
      @stanhu @markpundsack @yorickpeterse What do you think?
      
      
      See merge request !4634
      919e3ed2
    • C
      19068574
    • S
      Update CHANGELOG for 8.8.5 release · c69715ba
      Stan Hu 提交于
      [ci skip]
      c69715ba
    • C
      Fix test. · fbc91599
      Connor Shea 提交于
      fbc91599
    • C
      Improve New Project page for mobile. · 01d9bffd
      Connor Shea 提交于
      Separate the New Project page's "Project path" grouped fields into separate fields.
      
      Fixes #18599.
      01d9bffd
    • P
      Moved pinned button to the bottom · 78866921
      Phil Hughes 提交于
      Changed breakpoint width to 1440px
      78866921
    • R
      Merge branch... · 2cfbf3e8
      Robert Speicher 提交于
      Merge branch '18131-pressing-merge-when-build-succeeds-at-the-same-exact-time-that-a-build-is-failing-will-merge-the-failed-build' into 'master'
      
      Fix race condition on auto merge
      
      Resolves #18131
      
      See merge request !4443
      2cfbf3e8
    • R
      Merge branch 'project-services-inverse-of' into 'master' · 32a5ff70
      Rémy Coutable 提交于
      Set inverse_of for Project/Services relation
      
      ## What does this MR do?
      
      This MR adds the `inverse_of:` option to two associations to reduce the number of queries when running code such as ` project.gitlab_issue_tracker_service.project`.
      
      ## Are there points in the code the reviewer needs to double check?
      
      No.
      
      ## Why was this MR needed?
      
      In !4410 it was revealed code such as the above is used and would run SQL queries when the root object (usually a Project) was already present. By using `inverse_of` Rails can just re-use those Project instances.
      
      ## What are the relevant issue numbers?
      
      None.
      
      ## Does this MR meet the acceptance criteria?
      
      - [x] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added
      - [x] ~~[Documentation created/updated](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/development/doc_styleguide.md)~~
      - [x] ~~API support added~~
      - [x] Tests
        - [x] ~~Added for this feature/bug~~
        - [x] All builds are passing
      - [x] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides)
      - [x] Branch has no merge conflicts with `master` (if you do - rebase it please)
      - [x] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits)
      
      See merge request !4674
      32a5ff70
    • P
      Clicking body closes nav · 7d9157ff
      Phil Hughes 提交于
      Fixed issue when nav wasn't present
      7d9157ff
    • Z
      Rename ci_commit to pipeline · 17ad286e
      Z.J. van de Weg 提交于
      17ad286e
    • Z
      Fix race condition on auto merge · 3fe4a2f5
      Zeger-Jan van de Weg 提交于
      3fe4a2f5
    • P
      Increased speed of sidebar transition · 9d74eb46
      Phil Hughes 提交于
      9d74eb46
    • Y
      Set inverse_of for Project/Services relation · 8a9164bf
      Yorick Peterse 提交于
      This ensures that code such as this don't run needless SQL queries:
      
          project.gitlab_issue_tracker_service.project
      
      This also means that if the root `project` eager loads any associations
      the Service object will be able to re-use those.
      8a9164bf
    • D
      Merge branch 'remove-shell-env' into 'master' · af493ccf
      Douwe Maan 提交于
      Get rid of Gitlab::ShellEnv
      
      Remove obsolete code we once needed for Grack and satellites.
      
      See merge request !4673
      af493ccf
    • D
      Merge branch '18338-change-admin-navigation-to-match-new-ui' into 'master' · e09d573e
      Dmitriy Zaporozhets 提交于
      Resolve "Change admin navigation to match new UI"
      
      ## What does this MR do?
      Moves admin navigation to layout nav to match Project, Groups, and Profile navigation
      
      ## Are there points in the code the reviewer needs to double check?
      
      ## Why was this MR needed?
      
      ## What are the relevant issue numbers?
      Closes #18338
      
      ## Screenshots (if relevant)
      ![Screen_Shot_2016-06-14_at_10.26.40_AM](/uploads/f0b8c8b259da16d929be2b36e8eeafb8/Screen_Shot_2016-06-14_at_10.26.40_AM.png)
      ![Screen_Shot_2016-06-14_at_10.26.44_AM](/uploads/07d9ece2063dfcfec1f0f2647d8ee782/Screen_Shot_2016-06-14_at_10.26.44_AM.png)
      ## Does this MR meet the acceptance criteria?
      
      - [ ] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added
      - [ ] [Documentation created/updated](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/development/doc_styleguide.md)
      - [ ] API support added
      - [ ] Tests
        - [ ] Added for this feature/bug
        - [ ] All builds are passing
      - [ ] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides)
      - [ ] Branch has no merge conflicts with `master` (if you do - rebase it please)
      - [ ] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits)
      
      See merge request !4650
      e09d573e
    • J
      Merge branch 'preventdefault-disabled-buttons' into 'master' · b2247398
      Jacob Schatz 提交于
      Prevent default disabled buttons and links.
      
      ## What does this MR do?
      Prevents default action for disabled buttons and links. If the element has `.btn` and `.disabled` at the same time, its default action will be prevented.
      
      ## Are there points in the code the reviewer needs to double check?
      Yes. Is there a better way to do that?
      
      ## Why was this MR needed?
      Right now we can click disabled links and it cause some troubles like in #18079.
      
      ## What are the relevant issue numbers?
      Fixes #18079
      
      ## Screenshots (if relevant)
      ![disabled-click](/uploads/48b58ce130f843e530e62632bcc27436/disabled-click.gif)
      
      ## Does this MR meet the acceptance criteria?
      
      - [x] [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CHANGELOG) entry added
      - [ ] [Documentation created/updated](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/development/doc_styleguide.md)
      - [ ] API support added
      - [x] Tests
        - [x] Added for this feature/bug
        - [x] All builds are passing
      - [x] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides)
      - [x] Branch has no merge conflicts with `master` (if you do - rebase it please)
      - [x] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits)
      
      See merge request !4658
      b2247398
    • P
      Pinned sidebar navigation option · e3529d54
      Phil Hughes 提交于
      Closes #18542
      e3529d54
  2. 15 6月, 2016 19 次提交