Skip to content
This repository has been archived by the owner on Sep 12, 2018. It is now read-only.

Yobi 0.8.0

Compare
Choose a tag to compare
@eungjun-yi eungjun-yi released this 22 May 01:00
· 41 commits to master since this release

주의사항: next 브랜치를 사용하시던 분들은 업그레이드 전에 반드시 next 브랜치 사용자를 위한 업그레이드 가이드를 먼저 읽어주세요.

하위 호환성 관련 주의사항

Activator를 사용하세요

드디어 Play 2.1에서 Play 2.3으로 업그레이드했습니다. 앞으로는 Yobi를 빌드하거나
실행할 때 play가 아니라 activator를 사용하셔야 합니다. 자세한 것은
README.md를 읽어주세요.

국가 코드 지정하기

특정 브라우저에서 다국어가 제대로 지원되지 않는 문제를 해결하기 위해 Yobi
0.8.0부터 언어 코드가 국가 코드도 포함하도록 바뀌었습니다. 설정 파일(따로
지정하지 않았다면 conf/application.conf)에서 다음과 같이 변경해주세요.

application.langs="en-US, ko-KR, ja-JP"

v0.7.3 이후 변경점

새 기능

  • 메일박스: 사용자는 imap.address 로 지정된 메일 주소로 메일을 보내서
    새 이슈를 등록할 수 있고, 알림 메일에 회신하여 댓글을 달 수도 있습니다.
    이 기능의 내부 동작에 대해서는 docs/technical/mailbox.md 를 참고해주세요.
    (116aec9)
  • 이제 Yobi를 간편하게 패키지로 설치할 수 있습니다. 자세한 것은 README.md의
    "다운 받아 설치하기"를 참고해주세요. (162dd32)
  • 시스템 진단: 사이트 관리자는 사이트 관리 > 시스템 진단 메뉴에서 Yobi에 어떤
    문제점이 있는지 확인할 수 있습니다. 예를 들어, 메일 박스 기능에 문제가
    발생하지 않았는지, application.port 설정을 빠뜨리지 않았는지 등을 확인할
    수 있습니다. (cca0ece)
  • 알림메일: application.notification.bymail.hideAddress = true 로 설정되어 있는
    경우, 수신자 목록에 불필요한 기본 메일 주소를 추가하지 않습니다. (7c0a9c3)

개선점

  • Java 8 지원
  • 코드주고받기: 머지 커밋 메시지에 어떤 브랜치로 머지되었는지에 대한 정보가
    추가되었고, 코드를 보내온 브랜치가 같은 브랜치인 경우 어느 저장소에서
    왔는지는 생략하게 바뀜 (7099e70)
  • 코드주고받기: 커밋이 추가/변경되었을 때 알림이 보내짐 (aca8b34)
  • 알림 메일 하나의 수신자가 application.notification.bymail.recipientLimit
    지정된 최대 수신자보다 많지 않도록 메일을 나누어 보냄 (cbcda46)
  • 프로젝트 설명에 마크다운을 지원 (17eac7c)
  • svnsync로 SVN 코드저장소 싱크가 가능하도록, SVN 저장소의 revision property를
    수정할 수 있도록 허용 (badd3df)
  • 코드주고받기: 머지 커밋 메시지에 들어가는 refname에서 refs/heads/ 와 같은
    불필요한 prefix 제거 (0474202)
  • 사용자가 이슈나 리뷰 스레드에 댓글을 남기고 바로 닫은 경우, 이 두 이벤트에
    대한 알림 메일을 합쳐서 한 통으로 발송함 (767f294)
  • Git 클라이언트에게 사용자가 선호하는 언어로 메시지를 보내줌 (1e9b9ee)
  • 프로젝트 지켜보기 버튼에 지켜보는 사람 숫자가 표시되고 알림 설정 페이지로
    가는 링크가 추가됨 (b751c05)

UI

  • 페이지를 로딩할 때 spinner 대신 프로그레스바를 보여줌 (a9bbe14)
  • 상단 GNB 우측 내 사진 옆의 아래 화살표를 눌렀을 때 보여지는 그룹의 최대
    갯수를, 5개에서 10개로 (f2f6150)
  • 코드가 숨김 상태인 프로젝트에서는, 리뷰와 코드 주고받기 메뉴를 나타나게 하는
    체크박스도 같이 숨김 (904c0fb)
  • Folder Jumping: 코드 브라우저에서 디렉토리를 선택할 때, 파일이 존재하지 않는
    디렉토리는 뛰어넘음 (7e6f9e9)
  • 데이터베이스 타임아웃이 발생한 경우 적절한 메시지를 보여줌 (9310254)
  • 코드주고받기: 커밋 목록 드롭다운 리스트에서 고정폭 폰트를 사용해 커밋
    아이디들을 보기좋게 정렬 (066c87c)
  • 사용자를 멘션할 때 자동완성 목록에 저자와 프로젝트를 지켜보는 사람들이 포함됨
    (677ff7a)
  • 멘션된 사람 아이디에 마우스 커서를 가져가면, 툴팁이 나타나서 그 사용자의
    이름과 아바타를 보여줌 (dbcebe6)
  • 코드주고받기: 리뷰 스레드가 한 개도 없으면 리뷰 목록을 숨김 (e7df11d)
  • GNB 개선 (51de4da, 802ec6e)
  • 멘션시 자동완성 목록을 서버로부터 가져올 때 프로그레스바를 보여줌 (b3a324d)
  • 프로젝트 메뉴의 리뷰 항목에도 갯수를 뱃지로 보여줌 (f43df15)
  • 프로젝트 메뉴의 이슈/코드주고받기/리뷰 갯수 뱃지 모양 개선 (e8fe8fc)

성능 개선

  • n+1 select를 회피하여, 대부분의 페이지 성능 개선 (93cb022)
  • in() expression을 사용하여 라벨로 프로젝트와 이슈를 찾는 속도 개선 (861b3fc)
  • 첨부파일 캐시 (0a863e5)
  • 쿼리를 줄여서 프로젝트 대시보드 빨라짐 (621b4b8)
  • 쿼리를 최적화하여 사이트 홈 빨라짐 (e2dd660)
  • 알림메일: 수신자 목록을 얻는 속도가 150배 빨라짐으로써 메일 발송이 빨라짐 (ea7febc)

문서

  • docs/ko/technical/access-control.md 에 그룹에 대한 서술 추가 (7141245)
  • 자바 코딩 가이드라인 추가 (191431e)
  • 서드파티 소프트웨어에 대한 저작권 NOTICE 파일 추가 (7633242)

내부 변경

  • DB 호환성을 위해, User 모델에 대한 raw query 변경 (9088b76)
  • findbugs 도입 (ca48c65)
  • 다목적 Key-value 저장을 위해 "Property" 테이블 추가 (2468b37)
  • ebeanconfig.datasource.default was added into conf/application.conf.default
    to make sure it can be configured.

v0.7.3 이후 버그수정

  • 댓글 수정에 대한 알림이 멘션한 사람들에게는 가지 않는 문제 (cd67cfb)
  • 댓글로 한번 멘션하면, 그 멘션을 지우더라도 계속 내 이슈 페이지의 나를 멘션한
    이슈로 나타나는 문제 (ae715e3)
  • 파이어폭스와 사파리에서 때때로 PJAX가 안 동작하는 문제 (b8f5c1e)
  • 댓글 갱신에 대한 알림 메일이 댓글 생성에 대한 알림 메일과 같은 메시지 id를
    갖는 문제 (01eb2fc)
  • 빈 커밋을 보려고 하면 서버 에러 발생 (f739919)
  • 특정 커밋을 볼 때 잘못된 브랜치가 선택됨 (c13745d)
  • 라벨을 편집할 때 색을 선택해도 색상 코드가 그 색으로 갱신되지 않음 (fedd18f)
  • 일부 브라우저에서 메시지가 사용자가 선호하는 언어로 안 나오는 문제 (43d2c6b)
  • 서버에서 렌더링한 마크다운이 XSS 공격을 막지 못함 (39fab71)
  • 이슈 본문을 수정할 때 마다, 본문에서 멘션된 모든 사용자에게 알림 메일이 계속
    보내지는 문제 (1e3d867)
  • 게시물의 공지 상태를 수정할 수 없는 문제 (97e05b7)
  • Git 프로젝트가 아님에도, 마크다운 렌더링을 할 때 SHA-1 해시값이 Git 커밋으로
    링크됨 (923dc51, d73fc5b)
  • 현재 사용자가 그룹 관리자가 아님에도, 그룹 보기 페이지에서 새 프로젝트 생성
    버튼이 보임 (516077a)
  • 커밋을 푸시했을 떄의 알림 메일이 같은 프로젝트에서는 항상 같은 메시지 id를
    갖는 문제 (461f44d)
  • 같은 이슈에서 한 사용자가 여러번 공감 가능한 문제 (6a6e6f7)
  • daysAgo 쿠키가 없는 상태에서 사용자 페이지에 접근하면 서버에러 (ad3a136)
  • 하나의 코드주고받기에 커밋 아이디가 같은 커밋이 두개 이상 존재하면 서버 에러
    (e0a43b3)
  • 같은 코드주고받기에서 한 사용자가 여러번 리뷰완료 가능한 문제 (02c3929)
  • 프로젝트 삭제시의 알림 메시지 내용이 잘못되어있음 (11a99bc)
  • group-overview.md 문서에서 그룹 멤버에 대한 권한 설명 오류 (f906078)
  • 마크다운: highlight-js-file path 경로 잘못됨 (348529f)
  • 파이어폭스가 pagination 입력상자에서 불필요한 spin button을 보여주지 않게
    함 (9fb5fcc)
  • 알림 메일의 References 헤더 잘못됨 (6299412)
  • 사이트 관리자가 그룹에 대한 관리자 권한을 갖고 있지 않음 (bd17dce)
  • 새 파일 혹은 삭제된 파일에 대한 리뷰 댓글이 사라짐 (b705300)
  • 코드 브라우저가 몇몇 디렉토리를 열지 못함 (e66433a)
  • 머지된 코드주고받기의 제목 변경 불가 (790d76e)
  • 그룹 이름을 변경할 때 공백이 있으면 서버 에러 (a4dee0c)
  • 내가 어떤 프로젝트의 멤버는 아니고 그 프로젝트가 속한 그룹이 멤버이기만
    한 경우, 그 프로젝트의 이슈 목록 페이지에서, "내게 할당된 이슈"와 "내가
    작성한 이슈" 필터가 동작하지 않음 (7f465fd)
  • 회원 가입 페이지에서 validation 메시지가 사라지지 않는 문제 (c2836e5)
  • 코드브라우저: SVN 저장소의 특정 리비전에 대한 파일의 링크가 잘못되어있는 문제
    (857020a)
  • 이슈라벨: 이슈 라벨을 갱신해도 화면에 바로 반영이 안됨 (bc8bb6f)
  • 첨부파일을 받아올 때 드물게 서버 에러가 발생하는 경우가 있음 (80c653a)
  • Yobi가 알림 메일 발송 queue에서 메일 삭제에 실패하게 되면 같은 알림 메일을
    무한히 발송하게 될 수 있음 (2799c86)
  • Markdown: 줄바꿈 시 영단어가 중간에서 쪼개지는 문제 (67179e2)
  • Diff 렌더링 페이지에서 사용자가 변경된 파일의 파일명을 드래그로 복사할
    수 없음 (d62acd8)
  • 프로젝트 생성 및 프로젝트 설정 페이지에서, 코드 저장소 종류 선택 UI가 깨짐
    (1868e84)
  • PullRequestEvent 와 PullRequestCommit 클래스의 'Lob' 어노테이션 일부 누락으로
    인한 잠재적 문제 가능성 (98680a4)
  • 파이어폭스에서 코드리뷰시 블럭 지정을 할 수 없는 문제 (8399d8a)
  • 내 이슈 페이지가 bfcache 버그로 인해 오동작하는 문제 (f3d68d8)
  • README: 경고 메시지에 대한 하이라이트가 잘못됨 (6780694)
  • 마일스톤 보기 페이지의 목록 버튼 위치가 잘못됨 (b51cd09)
  • 라벨로 필터링된 이슈를 목표완료일 순으로 정렬하면 에러 발생 (c44efc8)
  • 코드 리뷰를 할 때, 코드를 가로로 스크롤하면 리뷰 댓글을 남기는 폼이 좌우로
    줄어드는 문제 (a1b94f0)
  • 스레드 안에서 리뷰 댓글 정렬 순서가 이상함 (417df18)
  • 이메일로 비밀번호를 재설정하려고 할 때 재설정 요청 URL이 잘못될 수 있음 (5056d18)
  • 사파리에서 새 프로젝트 등록시 VCS 선택 상자가 깨짐 (c42580f)
  • 익명 사용자에게는 보이지 않는 에러페이지가 여럿 있음 (31c6c07)
  • 사용자가 이메일을 통한 비밀번호 재설정을 시도하고 실패하였음에도, 성공한
    것 처럼 응답이 돌아옴 (3baa7db)
  • 그룹 멤버의 권한을 "멤버"로 설정할 때 에러가 발생하는 경우가 있음 (942ec6a)
  • 마일스톤 목표일이 유효한지 제대로 검사하지 않음 (b377be2)
  • 프로젝트의 관리자가 그 프로젝트를 소유하기 위해 자신에게 이관하면 기대와는
    달리 권한이 멤버가 됨 (c82d13a)

WARN: If you are using 'next' branch, you MUST read the upgrade guide for next branch before upgrade Yobi to 0.8.0.

Backward compatibility notes

Use Activator

Finally we have upgraded the Play Framework from 2.1 to 2.3. You should use
activator instead of play when build or run Yobi. Read README.md for more
details.

Specify country code

Since Yobi 0.8.0, language codes are changed to include country code to fix the
bug that i18n does not work for some browsers. So you have to update your
configuration file(conf/application.conf by default) as follows:

application.langs="en-US, ko-KR, ja-JP"

Updates since v0.7.3

New Features

  • Mailbox: Users can send an email to the email address defined by
    imap.address to post an issue or reply to the notification email to post
    a comment. See docs/technical/mailbox.md for its internal operation. (116aec9)
  • Users can install Yobi from package. See "Install from binary" in README.md
    for more details. (162dd32)
  • Diagnostics: Site Administrators can check problems of Yobi in Site Admin

    Diagnostics page. It diagnoses the problems of Mailbox, missing
    application.port and so on. (cca0ece)

Enhancements

  • Java 8 is supported.
  • PullRequest: A merge commit message contains the branch to be merged and does
    not contain the repository the merged commits come from if it is not remote.
    (7099e70)
  • PullRequest: A Notification is sent after commits of a pullrequest are
    updated. (aca8b34)
  • Notification: Split emails to avoid number of recipients exceeded the limit
    specified by application.notification.bymail.recipientLimit. (cbcda46)
  • Project description is rendered to HTML in markdown syntax. (17eac7c)
  • Users can modify revision property of their SVN repository. It allows svnsync
    to sync a SVN repsitory with another one. (badd3df)
  • Notification: Emails do not contain the unnecessary default recipient if
    application.notification.bymail.hideAddress = true. (7c0a9c3)
  • PullRequest: When a merge commit message is genereated, the redundant prefix
    of refname, like refs/heads/, is ommited. (0474202)
  • If a user comment on an issue or review thread and close it immediately, Yobi
    sends a notification email only once that describes both of the events.
    (767f294)
  • Yobi as a git server says in user's preferred language. (1e9b9ee)
  • Project Watch button has a number of watchers and a link to the Notification
    Settings page. (b751c05)

UI

  • Progressbar instead of spinner, while loading a page. (a9bbe14)
  • In My Dropdown menu, Groups are listed up to 10 instead of 5. (f2f6150)
  • Menu Setting in the Project Setting page does not display unnecessary
    checkboxes for Review and PullRequest if Code is unchecked to be hidden.
    (904c0fb)
  • Folder Jumping: In Code Browser, Users can go directly the first descendant
    directory which has a regular file. (7e6f9e9)
  • Yobi displays appropriate warning message when database timeout occurs.
    (9310254)
  • PullRequest: In the dropdown list for commits of pullrequest, the commit ids
    are aligned prettier by using fixed font. (066c87c)
  • When mentioning a user, the autocomplete list includes the author and project
    watchers. (677ff7a)
  • When a cursor is on a mentioned username, a tooltip displays the user's name
    and avatar. (dbcebe6)
  • PullRequest: The review list is hidden if no review thread exists. (e7df11d)
  • GlobalNavigation is improved and looks better. (51de4da, 802ec6e)
  • Mention: Show a progressbar while fetching items for autocomplete from the
    server. (b3a324d)
  • Project Menu: Review item has a number badge as issue item and pullrequest
    item does. (f43df15)
  • Project Menu: Number badges look better. (e8fe8fc)

Performance

  • Most of view pages becomes faster by preventing n+1 select. (93cb022)
  • Finding projects and issuses by labels becomes faster by using in()
    expression. (861b3fc)
  • Attachments are cached. (0a863e5)
  • Project's dashboard becomes faster by reduing queries. (621b4b8)
  • Site home becomes faster by optimizing the query. (e2dd660)
  • Notification: Sending email becomes much faster by making getting receivers
    150x faster. (ea7febc)

Documentation

  • docs/ko/technical/access-control.md describes about Group. (7141245)
  • Java Coding Guidelines is added. (191431e)
  • The copyright notice of third-party softwares is added. (7633242)

Internal changes

  • Raw queries about User model was changed for compatibility. (9088b76)
  • findbugs was introduced. (ca48c65)
  • Yobi has "Property", a key-value pair table to store any value in the
    Database. (2468b37)
  • ebeanconfig.datasource.default was added into conf/application.conf.default
    to make sure it can be configured.

Fixes since v0.7.3

  • Notifications for comment editing is not sent to mentioned people. (cd67cfb)
  • My Issues: If an comment mentioned me once, the comment never disappeared in
    the list of mention issues although the comment is modified and the mention
    is removed. (ae715e3)
  • PJAX sometimes did not work for firefox and safari. (b8f5c1e)
  • Notification emails for updated comment had same message-id with the
    event when the comment was created. (01eb2fc)
  • Server error occured when access a file or a directory that does not exist or
    root directory of an empty commit. (f739919)
  • Selected branch for each commit was incorrect and useless. (c13745d)
  • IssueLabel: When edit a label, the color code was not updated even if you
    clicked color scheme button. (fedd18f)
  • Messages are not shown in preferred language with someweb browsers. (43d2c6b)
  • Failed to defence XSS attack after markdown rendering on server. (39fab71)
  • When an issue is modified, notification emails were sent to all of mentioned
    users. (1e3d867)
  • The notice status of a post could not be modified. (97e05b7)
  • While rendering markdown text, A SHA-1 hash was rendered to a Git commit
    even if the project does not have a Git repository. (923dc51, d73fc5b)
  • Create new project button on group's view was shown always although current
    user is not a group admin. (516077a)
  • Notification emails for pushing commits of a project had a same message-id.
    (461f44d)
  • Users could vote to an issue several times. (6a6e6f7)
  • Server error occured when a user access a user page with an empty daysAgo
    cookie. (ad3a136)
  • Server error occured if there are several pull-request-commits whose commit
    id equals to each other. (e0a43b3)
  • A pullrequest might display duplicated reviewers if the user clicked review
    button several times. (02c3929)
  • The alert message for project deletion was incorrect. (11a99bc)
  • In group-overview.md, Description about permission of group members was
    incorrect. (f906078)
  • Markdown: The path to highlight-js-file was incorrect. (348529f)
  • Firefox displayed unnecessary spin-button in pagination input box. (9fb5fcc)
  • References header of notification email was incorrect. (6299412)
  • Site Administrator did not have admin privilege to groups. (bd17dce)
  • Review comment for new or deleted file was missed. (b705300)
  • Code Browser could not open some directories because of ConcurrentException.
    (e66433a)
  • Users cannot change the title of a merged pullrequest. (790d76e)
  • Server error occured when trying to change the name of a group if the name
    has a whitespace character. (a4dee0c)
  • In an issue list page of a project, "Assigned to me" and "Created by me"
    filter did not work if I am a member of the group to which the project
    belongs but not a member of the project. (7f465fd)
  • In signup page, validation messages did not disappeared even if invalid
    fields was fixed. (c2836e5)
  • CodeBrowser: Urls to files at a specific revision of SVN repository was
    incorrect. (857020a)
  • IssueLabel: Updating issue labels did not affect the web page immediately.
    (bc8bb6f)
  • An server error might occured rarely when getting an attachment. (80c653a)
  • Yobi was sending a notification email endlessly if it failed to delete the
    email from the sending queue. (2799c86)
  • Markdown: Words broke incorrectly by line break. (67179e2)
  • Diff: Users could not drag and copy paths of compared files. (d62acd8)
  • In project creation page and project setting page, the dropdown list to
    choose code repository type was broken. (1868e84)
  • A potentional bug existed because of missing 'Lob' annotation on some fields
    in PullRequestEvent and PullRequestCommit. (98680a4)
  • Firefox users could not select a block of code while doing code review.
    (8399d8a)
  • My Issues worked incorrectly because of bfcache bug. (f3d68d8)
  • README: The highlight to warning message was incorrect. (6780694)
  • The list button in milestone view page was placed incorrectly. (b51cd09)
  • An error occured when sorting issues, filtered by label, by duedate. (c44efc8)
  • The form to comment a review message on code narrowed while scrolling the
    rendered diff horizontally. (a1b94f0)
  • Review comments in a thread could be ordered incorrectly. (417df18)
  • When a user tried to reset password via email, the url to reset password
    might be incorrect. (5056d18)
  • The select box to choose vcs for new project was broken in Safari. (c42580f)
  • A lot of error pages were not displayed to anonymous. (31c6c07)
  • While a user tried to reset the password via email and it failed, Yobi
    responded success. (3baa7db)
  • An error might occur when update a group member's role to "member". (942ec6a)
  • Duedate of milestone was not validated correctly. (b377be2)
  • When a manager of a project transfer the project to self to own the project,
    the manager became a member, not a manager nor an owner, of the project,
    contray to expectation. (c82d13a)