Yobi v0.8.0 릴리즈 노트
=======================

하위 호환성 관련 주의사항
-------------------------

### 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)
