Giter Club home page Giter Club logo

yona's Introduction

[English]

Build Status Downloads Status

21세기 협업 개발 플랫폼

Yona?

  • Git 저장소 기능이 내장된 설치형 이슈트래커
  • Naver, Naver Labs 를 비롯하여 게임회사, 통신회사 고객센터, 공공기관, 투자사, 학교, 기업등에서 수년 간 실제로 사용되어 왔고 개선되어 온(Real world battled) 애플리케이션입니다

주요기능

  • 서비스 종료나 데이터 종속 걱정없는 설치형
  • 프로젝트 기반의 유연한 이슈트래커와 게시판
    • 편리한 프로젝트간 이슈 이동
    • 서브 태스크 이슈
    • 본문 변경이력 보기
    • 이슈 템플릿 기능
  • 자체 내장된 코드 저장소
    • Git/SVN 선택 가능
    • 온라인 수정 및 커밋 지원
    • 프로젝트 멤버만 코드에 접근 가능 기능 등
  • 블럭기반 코드리뷰
    • 코드 블럭 및 리뷰 스레드 지원
    • 리뷰 점수 지원
  • 그룹 기능
    • 그룹 이슈 및 게시글 통합관리
    • 그룹 프로젝트, 그룹 멤버
  • 한글 기반
    • 프로젝트 이름 및 그룹 이름에 한글을 사용가능
  • LDAP 지원
    • LDAP 장애시에도 사용가능한 기능 제공
  • 다른 제품이나 서비스로의 마이그레이션 기능 제공
    • Github/Github Enterprise, 또 다른 Yona 인스턴스, Redmine 등
  • 로그인 관련 보안을 높일 수 있는 소셜로그인 지원

등을 비롯하여 일상적인 업무에서 SW 개발 전반에 필요한 다양한 기능을 포함하고 있습니다.

추가 읽을거리

라이선스

Yona는 Apache 2.0 라이선스로 제공됩니다.

이어지는 설치 및 실행, 백업 등등에 대한 자세한 설명은 Wiki에 따로 세분화되어 정리되어 있습니다.

Yona 설치 및 실행

Yona 배포판

현재 Yona는 버전별로 두 개의 배포판을 릴리즈 메뉴를 통해 제공하고 있습니다.

  • MariaDB 버전
    • 기본 권장 버전
    • yona-v1.11.0-bin.zip 같은 형식으로 파일로 배포
    • DB 설치에 약간의 시간이 필요하지만 안정적으로 운영이 가능
  • H2 DB 내장형
    • DB 설정없이 내려받아서 바로 실행해서 쓸 수 있는 버전
    • yona-h2-v1.11.0-bin.zip 같은 형식으로 파일로 배포
    • USB 등에 담아서 이동해가면서 사용하거나 작업후 통째로 zip으로 묶어서 들고 다니는 것이 가능함
    • 대규모 사이트에서 사용하기에는 적합하지 않음. 참고: Yona가 MariaDB를 기본 DB로 사용하게 된 이유

Yona 설치

Yona는 크게 다음과 같은 2단계로 설치합니다.

Docker를 이용한 설치

Docker를 이용해 설치하실분은 pokev25 님의 https://github.com/pokev25/docker-yona 를 이용해주세요.

Amazon AWS 에 설치

https://okdevtv.com/mib/yona 에서 가이드를 볼 수 있습니다. by Kenu

Yona 실행 및 업그레이드/백업 및 복구/문제 해결

소스코드를 직접 내려 받아서 빌드하거나 자신만의 배포판을 만들기

자신의 입맛에 맛게 코드를 직접 수정해서 작업하거나 코드를 기여하고 싶을 경우에는 코드 저장소로부터 코드를 직접 내려받아서 빌드/실행하는 것도 가능합니다. 소스코드를 직접 내려 받아서 실행하기를 참고해 주세요

서버 관련 설정들

Google Analytics

  • 기본적으로는 Google Analytics 가 활성화 되어 함께 배포됩니다.
  • 설치형으로 제공되는 Yona의 특성상 제품이 지속적으로 개발/유지되기 위해서는 사용자들이 현재 어느정도 내려받아서 사용하고 있는지에 대한 정보가 필요합니다.
  • 만약 이부분에 대해 도움을 주기 곤란한 경우 application.conf 에서 아래 항목을 false로 수정합니다.
application.send.yona.usage = true

마이그레이션

  • 기본적으로 Yona 에서 Github/Github Enterprise 로 이전하는 기능을 제공합니다.
  • Yona Export
    • 프로젝트 로컬 백업
    • Yona 에서 다른 Yona 인스턴스로 이전 지원
      • 일명 '출장용 Yona 기능'이라고도 할 수 있는 하는 기능입니다.
        • DB내장형 경량 Yona인, [Yona H2 Embedded 버전]을 사용해서 출장/파견 나가서 작업하다가 작업 완료후에 Export 받아서 본점 Yona에 Import 하는 것이 v1.6.0부터 가능합니다.
    • Export 파일 포맷만 일치시킨다면 어떤 소스로부터도 마이그레이션이나 이동이 가능합니다

Contribution

  • 코드 기여의 기준이 되는 브랜치는 master입니다.
  • 저장소를 fork 한 다음 master 브랜치를 기준으로 작업하신다음 master 브랜치로 pull request를 보내주세요.
    • next브랜치는 내부 개발용입니다. 어떠한 기능들이 추가되고 있는지 현장을 보고 싶으시면 next브랜치를 참고해주세요.
  • 코드리뷰 후 merge 되면 Yona Author로 파일에 기록되며 작은 기념품을 보내드립니다.

[한국어]

Yona

Yona is a web-based project hosting software.

What you can do with Yona:

Yona is designed to increase the speed and efficiency of team work and team development.

  • Issue tracker
    • Issues can be transferred to other projects
    • Issues' change histories can be viewed
  • Bulletin board
  • Embedded Git/SVN respository features
  • Pull requests & Block-based code review
  • Online Commits
  • LDAP support
  • Social login
  • Migration to/from other services or Yona instances
    • Github/Github Enterprise, Redmine, Yona

Requirements

  • Java 8+
  • System Memory 2Gb+ (Recommendation: 4Gb+)

Distribution

Currently, There are two distribution types.

MariaDB version

  • Recommended version
  • It takes a little effort to install DB, but it guarantees stable operation

Embedded H2 DB version

  • Portable version that can be downloaded and run immediately.
    • Setting a DB is not required.
    • Also, can run the software directly from a USB device
  • Suitable for small teams (under 500 users).

How to install

Basically, Yona installation is in two steps:

If you want to use Docker, See https://github.com/pokev25/docker-yona by pokev25

Start/Upgrade/Backup/Trouble Shootings

Server Settings

Migration

  • Yona Export
    • Local backup
    • Move projects to another Yona instance
    • If you can match the format, anything can be imported into Yona
  • Github/Github Enterprise migration

Google Analytics

  • Distributed Yona includes Google Analytics
  • This data is used for making us to improve Yona
  • If you want to disable this for any reason, set the following option to false in conf/application.conf file.
application.send.yona.usage = true

Contribution

  • The branch for contributions is master.
  • At first, fork the repository, then work on the master branch. And send a pull request to themaster branch.
    • The next branch is for internal development. If you want to see what features are being added, please refer to the next branch.

License

Copyright Yona Authors, NAVER Corp. and NAVER LABS under the Apache License, Version 2.0

yona's People

Contributors

beanmilk avatar bluemir avatar byron1st avatar changsungkim avatar charsyam avatar cpascal avatar danapark avatar doortts avatar fvlasie avatar hippothewild avatar holyachon avatar hongwonjun avatar insanehong avatar javarouka avatar k16wire avatar k8nx avatar kenu avatar kjkmadness avatar kyungbeck avatar laziel avatar mjpark03 avatar painh avatar pokev25 avatar project-yona avatar sanxiyn avatar sjstyle avatar sparkly9399 avatar wansoon avatar yjh0502 avatar youngje avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

yona's Issues

Win10에서 Yona 설치가 안됩니다

windows 10 Edu Ed에서 mariaDB설치하고 yona/bin폴더에서 yona.bat을 실행하면 아래의 에러가 발생합니다.
mariaDB접속 테스트는 접속이됩니다.

mysql -uyona -p"yonadan" -Dyona

"윈도우7 x64에서 실행안됨" 이슈를 읽어봐도 잘 모르겠습니다.
아래는 yona.bat을 실행하면 발행하는 오류메세지입니다.

C:\Tool\yona\bin>yona.bat
Play server process ID is 6028
[error] c.j.b.h.AbstractConnectionHook - Failed to obtain initial connection Sleeping for 0ms and trying again. Attempts left: 0. Exception: org.mariadb.jdbc.internal.util.dao.QueryException: Could not connect: Access denied for user 'yona'@'localhost' (using password: YES).Message:Could not connect: Access denied for user 'yona'@'localhost' (using password: YES)
Oops, cannot start the server.
Configuration error: Configuration error[Cannot connect to database [default]]
at play.api.Configuration$.play$api$Configuration$$configError(Configuration.scala:94)
at play.api.Configuration.reportError(Configuration.scala:743)
at play.api.db.BoneCPPlugin$$anonfun$onStart$1.apply(DB.scala:247)
at play.api.db.BoneCPPlugin$$anonfun$onStart$1.apply(DB.scala:238)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
at scala.collection.immutable.List.foreach(List.scala:318)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
at scala.collection.AbstractTraversable.map(Traversable.scala:105)
at play.api.db.BoneCPPlugin.onStart(DB.scala:238)
at play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:91)
at play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:91)
at scala.collection.immutable.List.foreach(List.scala:318)
at play.api.Play$$anonfun$start$1.apply$mcV$sp(Play.scala:91)
at play.api.Play$$anonfun$start$1.apply(Play.scala:91)
at play.api.Play$$anonfun$start$1.apply(Play.scala:91)
at play.utils.Threads$.withContextClassLoader(Threads.scala:21)
at play.api.Play$.start(Play.scala:90)
at play.core.StaticApplication.(ApplicationProvider.scala:55)
at play.core.server.NettyServer$.createServer(NettyServer.scala:244)
at play.core.server.NettyServer$$anonfun$main$3.apply(NettyServer.scala:280)
at play.core.server.NettyServer$$anonfun$main$3.apply(NettyServer.scala:275)
at scala.Option.map(Option.scala:145)
at play.core.server.NettyServer$.main(NettyServer.scala:275)
at play.core.server.NettyServer.main(NettyServer.scala)
Caused by: java.sql.SQLInvalidAuthorizationSpecException: Could not connect: Access denied for user 'yona'@'localhost' (using password: YES)
at org.mariadb.jdbc.internal.util.ExceptionMapper.get(ExceptionMapper.java:121)
at org.mariadb.jdbc.internal.util.ExceptionMapper.throwException(ExceptionMapper.java:69)
at org.mariadb.jdbc.Driver.connect(Driver.java:110)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com.jolbox.bonecp.BoneCP.obtainRawInternalConnection(BoneCP.java:363)
at com.jolbox.bonecp.BoneCP.(BoneCP.java:416)
at com.jolbox.bonecp.BoneCPDataSource.getConnection(BoneCPDataSource.java:120)
at play.api.db.BoneCPPlugin$$anonfun$onStart$1.apply(DB.scala:240)
... 22 more
Caused by: org.mariadb.jdbc.internal.util.dao.QueryException: Could not connect: Access denied for user 'yona'@'localhost' (using password: YES)
at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.authentication(AbstractConnectProtocol.java:464)
at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.handleConnectionPhases(AbstractConnectProtocol.java:428)
at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connect(AbstractConnectProtocol.java:351)
at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connectWithoutProxy(AbstractConnectProtocol.java:664)
at org.mariadb.jdbc.internal.util.Utils.retrieveProxy(Utils.java:587)
at org.mariadb.jdbc.Driver.connect(Driver.java:105)
... 28 more

@6pmdhhdd9: Database 'default' is in an inconsistent state!

DB에 테이블은 정상적으로 생성된것을 확인 하였습니다.

DB버전은 다음과 같습니다.
+-------------------------+---------------------------------+
| Variable_name | Value |
+-------------------------+---------------------------------+
| innodb_version | 5.6.28-76.1 |
| protocol_version | 10 |
| slave_type_conversions | |
| version | 10.1.12-MariaDB-1~trusty |
| version_comment | mariadb.org binary distribution |
| version_compile_machine | x86_64 |
| version_compile_os | debian-linux-gnu |
| version_malloc_library | system jemalloc |
| version_ssl_library | OpenSSL 1.0.1f 6 Jan 2014 |
| wsrep_patch_version | wsrep_25.13 |
+-------------------------+---------------------------------+

yona를 시작하면 다음과 같은 에러가 발생 합니다. 이게..뭐가 문제일까요?
VM에서 잘 되는거 확인하고 실서버에서 업그레이드 작업 하려고 하는데 발생하네요.

Oops, cannot start the server.
@6pmdhhdd9: Database 'default' is in an inconsistent state!
at play.api.db.evolutions.Evolutions$.checkEvolutionsState(Evolutions.scala:196)
at play.api.db.evolutions.Evolutions$.databaseEvolutions(Evolutions.scala:367)
at play.api.db.evolutions.Evolutions$$anonfun$evolutionScript$2.apply(Evolutions.scala:332)
at play.api.db.evolutions.Evolutions$$anonfun$evolutionScript$2.apply(Evolutions.scala:330)
at scala.Option.map(Option.scala:145)
at play.api.db.evolutions.Evolutions$.evolutionScript(Evolutions.scala:330)
at play.api.db.evolutions.EvolutionsPlugin$$anonfun$onStart$1$$anonfun$apply$1.apply$mcV$sp(Evolutions.scala:486)
at play.api.db.evolutions.EvolutionsPlugin.withLock(Evolutions.scala:531)
at play.api.db.evolutions.EvolutionsPlugin$$anonfun$onStart$1.apply(Evolutions.scala:485)
at play.api.db.evolutions.EvolutionsPlugin$$anonfun$onStart$1.apply(Evolutions.scala:483)
at scala.collection.immutable.List.foreach(List.scala:318)
at play.api.db.evolutions.EvolutionsPlugin.onStart(Evolutions.scala:483)
at play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:91)
at play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:91)
at scala.collection.immutable.List.foreach(List.scala:318)
at play.api.Play$$anonfun$start$1.apply$mcV$sp(Play.scala:91)
at play.api.Play$$anonfun$start$1.apply(Play.scala:91)
at play.api.Play$$anonfun$start$1.apply(Play.scala:91)
at play.utils.Threads$.withContextClassLoader(Threads.scala:21)
at play.api.Play$.start(Play.scala:90)
at play.core.StaticApplication.(ApplicationProvider.scala:55)
at play.core.server.NettyServer$.createServer(NettyServer.scala:244)
at play.core.server.NettyServer$$anonfun$main$3.apply(NettyServer.scala:280)
at play.core.server.NettyServer$$anonfun$main$3.apply(NettyServer.scala:275)
at scala.Option.map(Option.scala:145)
at play.core.server.NettyServer$.main(NettyServer.scala:275)
at play.core.server.NettyServer.main(NettyServer.scala)

변경 내용 확인 시 한글 깨짐 문제

안녕하세요
기존에 yobi를 사용할 때도 있었던 문제인데요.
파일 변경 내용 확인 시에만 한글이 깨지는 현상입니다.

현재 요나 데모서버에도 테스트를 해보았는데 같은 현상이 있는 것 같습니다.
아래와 같이 그냥 파일 내용에서는 한글이 잘 보입니다만
https://repo.yona.io/jhlee/test/code/HEAD

아래와 같이 변경내용 확인시에는 한글이 깨집니다.
https://repo.yona.io/jhlee/test/commits/HEAD/

혹시 해당 현상에 대해 확인 가능하신지 문의 드립니다.

repository 에 문제가 있습니다.(opencastproject.org)

yona 를 설치해서 사용하다가.. play 프레임워크도 배울겸, 필요에 맞게 조금조금 소스를 바꿔보고,
싶은 마음에 github 를 클론해서 activator 에 직접 실행해보고 있는데요..

빌드 중에 http://repository.opencastproject.org/nexus/content/repositories/public 관련해서
아래와 같은 메시지가 자꾸 뜹니다.

Server access Error: Connection timed out: connect url=http://repository.opencastproject.org/nexus/content/repositories/public/org/apache/apache/10/apache-10.jar

위에 저장된 라이브러리 파일 을 다른 레포지터리에서 받을 수 있는 방법은 없나요?

라벨 생성 오류

@doortts 님 안녕하세요 죄송스럽게도 또 이슈를 보고합니다.

기존에 있던 이슈 라벨을 삭제하고 다시 같은 분류 같은 이름으로 라벨 생성시 에러가 발생 하였습니다.

그이후 해당 분류에 대한 라벨을 추가 할때 에러가 발생 합니다.

간략한 에러 내용은 아래와 같습니다.

2016-04-09 11:20:58,963 - [ERROR] - from play in play-akka.actor.default-dispatcher-129
Cannot invoke the action, eventually got an error: javax.persistence.PersistenceException: Unique expecting 0 or 1 rows but got [2]

2016-04-09 11:20:58,975 - [ERROR] - from application in play-akka.actor.default-dispatcher-129

분류나 라벨이 유니크 하지 않아서 생기는 에러 같은데 확인 부탁 드리겠습니다.

참고로 기존에 없는 새로운 분류의 라벨이나 삭제 발생 하지 않았던 분류에 라벨은 이상없이 잘 등록 됩니다.

윈도우7 x64에서 실행안됨

안녕하세요. 개인 프로젝트에 요나를 감사한 마음으로 써보려했는데 윈도우에선 실행이 안되네요

*환경: Yona v1.0.0(yona-v1.0.0-bin.zip), 자바1.8, 마리아디비 10.1, 윈도우7 x64 엔터프라이즈 K sp1 (& VMWare 윈도우7 x64 Ultimate K sp1), JAVA_HOME 1.8

*증상: yona.bat 실행시 1번 또는 2번 익셉션 발생하며 요나 실행 안됨.

  1. Caused by: ... Could not connect Access denied for user 'yona'@'localhost' <using password: YES)
  2. Caused by: ... ClassNotFoundException: org.mariadb.jdbc.Driver

*해결하려고 시도한 것들

  1. 이슈#14 (#14) 의 penpen님의 yona.bat파일과 요나 릴리즈 1.0버전 둘다로 실행해봄. (요나홈에서 bin\yona.bat 실행함)
  2. DB의 yona 패스워드를 따로 설정했다가, yonadan 등으로도 바꿔봄. 따라서 conf 파일의 db.default.password=" " 부분도 "yonadan", yonadan, 개인비번, "개인비번" 등의 형식으로 바꿔봄
  3. 겁나 구글링 해봐도 해결되지 않음.
  4. 실사용 메인 데탑에서 처음 시도시 여러번 시도하다 안되서 깨끗한 VMWare workstation 12에서 윈도우7 x64 Ultimate K sp1 새로 깔고 해도 안되네요

해결 해주신다면 감사하겠습니다.

마일스톤 만들때 오류

image

마일스톤 잘 만들어지다가

어느 순간

image

이렇게 오류 뜨더니
그다음부턴 계속 마일스톤 안만들어집니다.

ㅜㅜ

맨 처음 만든 프로젝트는 잘됐는데
두번째 프로젝트부터 이런현상 발생합니다
프로젝트 새로만들어도 계속 같구요.

SVN Remote 디렉토리 생성

저장소를 SVN 으로 사용을 하고 있는데 프로젝트 생성한 계정으로는 원격 저장소에 디렉토리를 생성 할 수가 없습니다.

admin 계정으로 하면 되는데 말이죠.

어떤 문제가 있을까요?

처음 실행시 테이블 생성 SQL 오류

zerglinggo@Yukino:~/yona$ bin/yobi -v
# Executing command line:
java
-Xms1024m
-Xmx1024m
-XX:ReservedCodeCacheSize=128m
-Duser.dir=/home/zerglinggo/yona
-Dyobi.home=/home/zerglinggo/yona
-Dconfig.file=/home/zerglinggo/yona/conf/application.conf
-Dlogger.file=/home/zerglinggo/yona/conf/application-logger.xml
-DapplyEvolutions.default=true
-cp
/home/zerglinggo/yona/lib/yobi.yobi-0.9.0-SNAPSHOT.jar:/home/zerglinggo/yona/lib/org.scala-lang.scala-library-2.10.4.jar:/home/zerglinggo/yona/lib/com.typesafe.play.twirl-api_2.10-1.0.3.jar:/home/zerglinggo/yona/lib/org.apache.commons.commons-lang3-3.1.jar:/home/zerglinggo/yona/lib/com.typesafe.play.play_2.10-2.3.6.jar:/home/zerglinggo/yona/lib/com.typesafe.play.build-link-2.3.6.jar:/home/zerglinggo/yona/lib/com.typesafe.play.play-exceptions-2.3.6.jar:/home/zerglinggo/yona/lib/org.javassist.javassist-3.18.2-GA.jar:/home/zerglinggo/yona/lib/com.typesafe.play.play-iteratees_2.10-2.3.6.jar:/home/zerglinggo/yona/lib/org.scala-stm.scala-stm_2.10-0.7.jar:/home/zerglinggo/yona/lib/com.typesafe.config-1.2.1.jar:/home/zerglinggo/yona/lib/com.typesafe.play.play-json_2.10-2.3.6.jar:/home/zerglinggo/yona/lib/com.typesafe.play.play-functional_2.10-2.3.6.jar:/home/zerglinggo/yona/lib/com.typesafe.play.play-datacommons_2.10-2.3.6.jar:/home/zerglinggo/yona/lib/joda-time.joda-time-2.3.jar:/home/zerglinggo/yona/lib/org.joda.joda-convert-1.6.jar:/home/zerglinggo/yona/lib/com.fasterxml.jackson.core.jackson-annotations-2.3.2.jar:/home/zerglinggo/yona/lib/com.fasterxml.jackson.core.jackson-core-2.3.2.jar:/home/zerglinggo/yona/lib/com.fasterxml.jackson.core.jackson-databind-2.3.2.jar:/home/zerglinggo/yona/lib/org.scala-lang.scala-reflect-2.10.4.jar:/home/zerglinggo/yona/lib/io.netty.netty-3.9.3.Final.jar:/home/zerglinggo/yona/lib/com.typesafe.netty.netty-http-pipelining-1.1.2.jar:/home/zerglinggo/yona/lib/org.slf4j.slf4j-api-1.7.6.jar:/home/zerglinggo/yona/lib/org.slf4j.jul-to-slf4j-1.7.6.jar:/home/zerglinggo/yona/lib/org.slf4j.jcl-over-slf4j-1.7.6.jar:/home/zerglinggo/yona/lib/ch.qos.logback.logback-core-1.1.1.jar:/home/zerglinggo/yona/lib/ch.qos.logback.logback-classic-1.1.1.jar:/home/zerglinggo/yona/lib/com.typesafe.akka.akka-actor_2.10-2.3.4.jar:/home/zerglinggo/yona/lib/com.typesafe.akka.akka-slf4j_2.10-2.3.4.jar:/home/zerglinggo/yona/lib/commons-codec.commons-codec-1.9.jar:/home/zerglinggo/yona/lib/xerces.xercesImpl-2.11.0.jar:/home/zerglinggo/yona/lib/xml-apis.xml-apis-1.4.01.jar:/home/zerglinggo/yona/lib/javax.transaction.jta-1.1.jar:/home/zerglinggo/yona/lib/com.typesafe.play.play-java_2.10-2.3.6.jar:/home/zerglinggo/yona/lib/org.yaml.snakeyaml-1.13.jar:/home/zerglinggo/yona/lib/org.hibernate.hibernate-validator-5.0.3.Final.jar:/home/zerglinggo/yona/lib/javax.validation.validation-api-1.1.0.Final.jar:/home/zerglinggo/yona/lib/org.jboss.logging.jboss-logging-3.1.1.GA.jar:/home/zerglinggo/yona/lib/com.fasterxml.classmate-1.0.0.jar:/home/zerglinggo/yona/lib/org.springframework.spring-context-4.0.3.RELEASE.jar:/home/zerglinggo/yona/lib/org.springframework.spring-core-4.0.3.RELEASE.jar:/home/zerglinggo/yona/lib/org.springframework.spring-beans-4.0.3.RELEASE.jar:/home/zerglinggo/yona/lib/org.reflections.reflections-0.9.8.jar:/home/zerglinggo/yona/lib/com.google.guava.guava-18.0.jar:/home/zerglinggo/yona/lib/dom4j.dom4j-1.6.1.jar:/home/zerglinggo/yona/lib/com.google.code.findbugs.jsr305-2.0.3.jar:/home/zerglinggo/yona/lib/org.apache.tomcat.tomcat-servlet-api-8.0.5.jar:/home/zerglinggo/yona/lib/com.typesafe.play.play-java-jdbc_2.10-2.3.6.jar:/home/zerglinggo/yona/lib/com.typesafe.play.play-jdbc_2.10-2.3.6.jar:/home/zerglinggo/yona/lib/com.jolbox.bonecp-0.8.0.RELEASE.jar:/home/zerglinggo/yona/lib/com.h2database.h2-1.3.176.jar:/home/zerglinggo/yona/lib/tyrex.tyrex-1.0.1.jar:/home/zerglinggo/yona/lib/com.typesafe.play.play-java-ebean_2.10-2.3.6.jar:/home/zerglinggo/yona/lib/org.avaje.ebeanorm.avaje-ebeanorm-3.3.4.jar:/home/zerglinggo/yona/lib/org.avaje.ebeanorm.avaje-ebeanorm-agent-3.2.2.jar:/home/zerglinggo/yona/lib/org.hibernate.javax.persistence.hibernate-jpa-2.0-api-1.0.1.Final.jar:/home/zerglinggo/yona/lib/com.typesafe.play.play-java-ws_2.10-2.3.6.jar:/home/zerglinggo/yona/lib/com.typesafe.play.play-ws_2.10-2.3.6.jar:/home/zerglinggo/yona/lib/com.ning.async-http-client-1.8.14.jar:/home/zerglinggo/yona/lib/oauth.signpost.signpost-core-1.2.1.2.jar:/home/zerglinggo/yona/lib/oauth.signpost.signpost-commonshttp4-1.2.1.2.jar:/home/zerglinggo/yona/lib/commons-logging.commons-logging-1.1.1.jar:/home/zerglinggo/yona/lib/com.typesafe.play.play-cache_2.10-2.3.6.jar:/home/zerglinggo/yona/lib/net.sf.ehcache.ehcache-core-2.6.8.jar:/home/zerglinggo/yona/lib/org.eclipse.jgit.org.eclipse.jgit-3.5.3.201412180710-r.jar:/home/zerglinggo/yona/lib/com.jcraft.jsch-0.1.50.jar:/home/zerglinggo/yona/lib/com.googlecode.javaewah.JavaEWAH-0.7.9.jar:/home/zerglinggo/yona/lib/org.apache.httpcomponents.httpclient-4.1.3.jar:/home/zerglinggo/yona/lib/org.apache.httpcomponents.httpcore-4.1.4.jar:/home/zerglinggo/yona/lib/org.eclipse.jgit.org.eclipse.jgit.http.server-3.5.3.201412180710-r.jar:/home/zerglinggo/yona/lib/org.eclipse.jgit.org.eclipse.jgit.java7-3.5.3.201412180710-r.jar:/home/zerglinggo/yona/lib/sonia.svnkit.svnkit-1.8.5-scm2.jar:/home/zerglinggo/yona/lib/net.java.dev.jna.jna-3.5.2.jar:/home/zerglinggo/yona/lib/com.jcraft.jsch.agentproxy.svnkit-trilead-ssh2-0.0.7.jar:/home/zerglinggo/yona/lib/com.trilead.trilead-ssh2-1.0.0-build217.jar:/home/zerglinggo/yona/lib/com.jcraft.jsch.agentproxy.core-0.0.7.jar:/home/zerglinggo/yona/lib/de.regnis.q.sequence.sequence-library-1.0.2.jar:/home/zerglinggo/yona/lib/com.jcraft.jsch.agentproxy.connector-factory-0.0.7.jar:/home/zerglinggo/yona/lib/com.jcraft.jsch.agentproxy.usocket-jna-0.0.7.jar:/home/zerglinggo/yona/lib/net.java.dev.jna.platform-3.5.2.jar:/home/zerglinggo/yona/lib/com.jcraft.jsch.agentproxy.usocket-nc-0.0.7.jar:/home/zerglinggo/yona/lib/com.jcraft.jsch.agentproxy.sshagent-0.0.7.jar:/home/zerglinggo/yona/lib/com.jcraft.jsch.agentproxy.pageant-0.0.7.jar:/home/zerglinggo/yona/lib/org.tmatesoft.sqljet.sqljet-1.1.10.jar:/home/zerglinggo/yona/lib/org.antlr.antlr-runtime-3.4.jar:/home/zerglinggo/yona/lib/sonia.svnkit.svnkit-dav-1.8.5-scm2.jar:/home/zerglinggo/yona/lib/sonia.svnkit.svnkit-javahl16-1.8.5-scm2.jar:/home/zerglinggo/yona/lib/org.apache.subversion.svn-javahl-api-1.8.1.jar:/home/zerglinggo/yona/lib/net.sourceforge.jexcelapi.jxl-2.6.10.jar:/home/zerglinggo/yona/lib/log4j.log4j-1.2.14.jar:/home/zerglinggo/yona/lib/org.apache.shiro.shiro-core-1.2.1.jar:/home/zerglinggo/yona/lib/commons-beanutils.commons-beanutils-1.8.3.jar:/home/zerglinggo/yona/lib/info.schleichardt.play-2-mailplugin_2.10-0.9.1.jar:/home/zerglinggo/yona/lib/org.apache.commons.commons-email-1.3.1.jar:/home/zerglinggo/yona/lib/javax.mail.mail-1.4.5.jar:/home/zerglinggo/yona/lib/javax.activation.activation-1.1.1.jar:/home/zerglinggo/yona/lib/commons-lang.commons-lang-2.6.jar:/home/zerglinggo/yona/lib/org.apache.tika.tika-core-1.2.jar:/home/zerglinggo/yona/lib/commons-io.commons-io-2.4.jar:/home/zerglinggo/yona/lib/org.julienrf.play-jsmessages_2.10-1.6.2.jar:/home/zerglinggo/yona/lib/commons-collections.commons-collections-3.2.1.jar:/home/zerglinggo/yona/lib/org.jsoup.jsoup-1.8.2.jar:/home/zerglinggo/yona/lib/com.googlecode.juniversalchardet.juniversalchardet-1.0.3.jar:/home/zerglinggo/yona/lib/com.github.zafarkhaja.java-semver-0.7.2.jar:/home/zerglinggo/yona/lib/com.googlecode.htmlcompressor.htmlcompressor-1.4.jar:/home/zerglinggo/yona/lib/yobi.yobi-0.9.0-SNAPSHOT-assets.jar:/home/zerglinggo/yona/lib/mariadb-java-client-1.3.4.jar
play.core.server.NettyServer

Play server process ID is 1882
[info] play - database [default] connected at jdbc:mysql://127.0.0.1:3306/zerglinggo
[error] play - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'clob,
date                      timestamp,
num_of_comments           integer,
mi' at line 4
Query is:
create table issue (
id                        bigint not null,
title                     varchar(255),
body                      clob,
date                      timestamp,
num_of_comments           integer,
milestone_id              bigint,
author_id                 bigint,
author_login_id           varchar(255),
author_name               varchar(255),
state                     integer,
project_id                bigint,
assignee_id               bigint,
constraint ck_issue_state check (state in (0,1,2)),
constraint pk_issue primary key (id)) [ERROR:1064, SQLSTATE:42000]
Oops, cannot start the server.
@6p4076af1: Database 'default' is in an inconsistent state!
        at play.api.db.evolutions.Evolutions$.checkEvolutionsState(Evolutions.scala:196)
        at play.api.db.evolutions.Evolutions$.databaseEvolutions(Evolutions.scala:367)
        at play.api.db.evolutions.Evolutions$$anonfun$evolutionScript$2.apply(Evolutions.scala:332)
        at play.api.db.evolutions.Evolutions$$anonfun$evolutionScript$2.apply(Evolutions.scala:330)
        at scala.Option.map(Option.scala:145)
        at play.api.db.evolutions.Evolutions$.evolutionScript(Evolutions.scala:330)
        at play.api.db.evolutions.EvolutionsPlugin$$anonfun$onStart$1$$anonfun$apply$1.apply$mcV$sp(Evolutions.scala:486)
        at play.api.db.evolutions.EvolutionsPlugin.withLock(Evolutions.scala:531)
        at play.api.db.evolutions.EvolutionsPlugin$$anonfun$onStart$1.apply(Evolutions.scala:485)
        at play.api.db.evolutions.EvolutionsPlugin$$anonfun$onStart$1.apply(Evolutions.scala:483)
        at scala.collection.immutable.List.foreach(List.scala:318)
        at play.api.db.evolutions.EvolutionsPlugin.onStart(Evolutions.scala:483)
        at play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:91)
        at play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:91)
        at scala.collection.immutable.List.foreach(List.scala:318)
        at play.api.Play$$anonfun$start$1.apply$mcV$sp(Play.scala:91)
        at play.api.Play$$anonfun$start$1.apply(Play.scala:91)
        at play.api.Play$$anonfun$start$1.apply(Play.scala:91)
        at play.utils.Threads$.withContextClassLoader(Threads.scala:21)
        at play.api.Play$.start(Play.scala:90)
        at play.core.StaticApplication.<init>(ApplicationProvider.scala:55)
        at play.core.server.NettyServer$.createServer(NettyServer.scala:244)
        at play.core.server.NettyServer$$anonfun$main$3.apply(NettyServer.scala:280)
        at play.core.server.NettyServer$$anonfun$main$3.apply(NettyServer.scala:275)
        at scala.Option.map(Option.scala:145)
        at play.core.server.NettyServer$.main(NettyServer.scala:275)
        at play.core.server.NettyServer.main(NettyServer.scala)
zerglinggo@Yukino:~/yona$
MariaDB [(none)]> status
--------------
mysql  Ver 15.1 Distrib 10.1.11-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Connection id:          189
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server:                 MariaDB
Server version:         10.1.11-MariaDB-1~trusty mariadb.org binary distribution
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8mb4
Db     characterset:    utf8mb4
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:            /var/run/mysqld/mysqld.sock
Uptime:                 41 min 5 sec

Threads: 2  Questions: 2168  Slow queries: 0  Opens: 43  Flush tables: 1  Open tables: 53  Queries per second avg: 0.879
--------------

위와 같이 SQL syntax error가 발생하며 실행이 되질 않습니다.
(실행 파일이 yona가 아닌 yobi..)

이관 메일 발송자 명

일반적인 메일 알림에 발송자는 정상적으로 한글 표시가 잘 됩니다.

프로젝트 이관 확인 메일에 발송자명은 깨진 형태의 글자로 옵니다.

이슈 라벨에 대한 질문

  1. 현재 프로젝트 생성시 이슈 라벨 항목은 비어 있는데요.
    기본값을 줄 방법이나 다른 프로젝트의 이슈 라벨을 가져올 방법은 없나요?
  2. 분류 라벨을 하나만 선택 하는것과 여러개 선택 하는 것의 차이점은 무엇인가요?
    해봐도 딱히 차이점을 모르겠습니다.

회원등급별 그룹/프로젝트 생성권한

안녕하세요?

yona를 업무용으로 제대로 활용하려고 합니다.

회사의 업무용으로 사용하기에도 아주 좋은데, 한가지 기능이 추가되었으면 합니다.

참여자,관리자의 등급에 따라 그룹이나 프로젝트 생성권한이 달라지면 좋겠다는 것입니다.

예를 들어 admin 만 그룹생성 권한이 있고, admin 이 지정한 그룹관리자가 프로젝트 생성을 할 수 있는, 또는 프로젝트 생성권한도 부여할 수 있는, 이런 식의 제한을 두는 것입니다.

멤버는 누구나 그룹이나 프로젝트를 생성할 수 있는 자유로움을 조금은 제한하는게 좋겠다 싶어서 제안드립니다.

개발자님의 노고에 항상 감사드립니다.

yona.home 설정이 정상동작하지 않습니다.

yona-1.0.0 사용자입니다.

data directory를 별도로 하기 위해 문서에 기술되어 있는 데로 YONA_HOME을 설정하였습니다. 그런데 정상동작하지 않았습니다. 그래서 yona shell script를 확인해 보니 YOBI_HOME과 yobi.home으로 되어 있어서 그걸로 설정하니 정상적으로 동작합니다.

'MariaDB 767 byte 에러' 해결안됨

'MariaDB 767 byte 에러'가 해결이 안됩니다.

  • os : CentOS 6.7 x64
  • java : 1.8 (yum install)

/etc/my.cnf

[client-server]

[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

[mysqld]
collation-server=utf8mb4_unicode_ci
init-connect='SET NAMES utf8mb4'
character-set-server=utf8mb4
lower_case_table_names=1

innodb_file_format=barracuda
innodb_large_prefix=on

처음에 show variables like 'innodb_file%'; 을 했을 때 다른 값이 있었습니다.
그래서

MariaDB [(none)]> set global innodb_file_format_max = BARRACUDA;

을 넣어서 세팅을 변경했구요.

MariaDB [(none)]> show variables like 'innodb_file%';
+--------------------------+-----------+
| Variable_name | Value |
+--------------------------+-----------+
| innodb_file_format | Barracuda |
| innodb_file_format_check | ON |
| innodb_file_format_max | Barracuda |
| innodb_file_per_table | ON |
+--------------------------+-----------+
4 rows in set (0.00 sec)

그런데도 767 에러가 해결이 되지 않습니다.
서버 리붓 후에도 결과는 똑같네요... 다른 방법은 더 없을까요??

update check가 안되네요..

새로 설치한 yona에 대하여 readme.md에 있는대로 application.conf를 설정한 후 수행하니
다음과 같이 update check가 되고 있지 않습니다..
경로가 잘못된건지.. 뭔지 모르겠네요..

[warn] application - Failed to fetch the latest Yobi version to update
org.eclipse.jgit.api.errors.TransportException: http://repo.yona.io/yona/yona: http://repo.yona.io/yona/yona/info/refs?service=git-upload-pack not found
at org.eclipse.jgit.api.LsRemoteCommand.execute(LsRemoteCommand.java:223) ~[org.eclipse.jgit.org.eclipse.jgit-3.5.3.201412180710-r.jar:3.5.3.201412180710-r]
at org.eclipse.jgit.api.LsRemoteCommand.call(LsRemoteCommand.java:159) ~[org.eclipse.jgit.org.eclipse.jgit-3.5.3.201412180710-r.jar:3.5.3.201412180710-r]
at models.YobiUpdate.fetchVersionToUpdate(YobiUpdate.java:98) ~[yobi.yobi-0.8.2.jar:0.8.2]
at models.YobiUpdate.refreshVersionToUpdate(YobiUpdate.java:82) ~[yobi.yobi-0.8.2.jar:0.8.2]
at models.YobiUpdate$1.run(YobiUpdate.java:63) ~[yobi.yobi-0.8.2.jar:0.8.2]
Caused by: org.eclipse.jgit.errors.NoRemoteRepositoryException: http://repo.yona.io/yona/yona: http://repo.yona.io/yona/yona/info/refs?service=git-upload-pack not found
at org.eclipse.jgit.transport.TransportHttp.connect(TransportHttp.java:488) ~[org.eclipse.jgit.org.eclipse.jgit-3.5.3.201412180710-r.jar:3.5.3.201412180710-r]
at org.eclipse.jgit.transport.TransportHttp.openFetch(TransportHttp.java:309) ~[org.eclipse.jgit.org.eclipse.jgit-3.5.3.201412180710-r.jar:3.5.3.201412180710-r]
at org.eclipse.jgit.api.LsRemoteCommand.execute(LsRemoteCommand.java:202) ~[org.eclipse.jgit.org.eclipse.jgit-3.5.3.201412180710-r.jar:3.5.3.201412180710-r]
at org.eclipse.jgit.api.LsRemoteCommand.call(LsRemoteCommand.java:159) ~[org.eclipse.jgit.org.eclipse.jgit-3.5.3.201412180710-r.jar:3.5.3.201412180710-r]
at models.YobiUpdate.fetchVersionToUpdate(YobiUpdate.java:98) ~[yobi.yobi-0.8.2.jar:0.8.2]

비공개 프로젝트의 경우 프로젝트 목록에서 노출되지 않습니다.

먼저 v1.0.2 패치를 통해 비공개 프로젝트를 잘 쓰고 있습니다. 감사합니다.

다만 비공개 프로젝트의 경우 권한이 없는 사람들에게는 프로젝트 목록에서 노출되지 않아 다시 문의드립니다.

프로젝트 생성시 비공개 선택시 아래의 문구를 볼수 있는데.

멤버로 등록한 사람만 접근할 수 있습니다. 단, 프로젝트 이름, 설명, 로고 등은 모든 사용자가 볼 수 있습니다.

해당 문구로 유추해 볼때 원래 의도는 프로젝트 목록에서는 노출이 되는게 아닐까 생각했습니다.

확인 부탁드립니다.
감사합니다.

README Tab 제안

항상 감사히 잘 사용 하고 있습니다.

사내에서 사용중인데 소스는 yona 가 아닌 다른 저장소를 이용하고 이슈 관리만 yona로 사용하는 경우가 있습니다.

코드 저장소가 없다보니 프로젝트 첫화면인 README 탭이 비어 있어서 왠지 사용하지 않는 프로젝트 같은 느낌이 들더라구요.

혹 코드 저장소가 없는 프로젝트 첫 화면을 README 대신 최근 이력이나 대시보드를 보여 주는게 좋지 않을까 생각 됩니다.

yona 설치 후 실행 시 에러 문의입니다.

운영환경
CentOS 5.11
MariaDB 10.1.11

yobi를 사용하다가 yona로 마이그레이션을 하고자 했습니다.
MariaDB를 설치했고, yona를 실행하니 아래와 같이 메시지가 출력됩니다.

Play server process ID is 3584
[info] play - database [default] connected at jdbc:mysql://127.0.0.1:3306/yona
[error] play - Specified key was too long; max key length is 767 bytes [ERROR:1071, SQLSTATE:42000]
Oops, cannot start the server.
@6p65l4e1a: Database 'default' is in an inconsistent state!
at play.api.db.evolutions.Evolutions$.checkEvolutionsState(Evolutions.scala:196)
at play.api.db.evolutions.Evolutions$.databaseEvolutions(Evolutions.scala:367)
at play.api.db.evolutions.Evolutions$$anonfun$evolutionScript$2.apply(Evolutions.scala:332)
at play.api.db.evolutions.Evolutions$$anonfun$evolutionScript$2.apply(Evolutions.scala:330)
at scala.Option.map(Option.scala:145)
at play.api.db.evolutions.Evolutions$.evolutionScript(Evolutions.scala:330)
at play.api.db.evolutions.EvolutionsPlugin$$anonfun$onStart$1$$anonfun$apply$1.apply$mcV$sp(Evolutions.scala:486)
at play.api.db.evolutions.EvolutionsPlugin.withLock(Evolutions.scala:531)
at play.api.db.evolutions.EvolutionsPlugin$$anonfun$onStart$1.apply(Evolutions.scala:485)
at play.api.db.evolutions.EvolutionsPlugin$$anonfun$onStart$1.apply(Evolutions.scala:483)
at scala.collection.immutable.List.foreach(List.scala:318)
at play.api.db.evolutions.EvolutionsPlugin.onStart(Evolutions.scala:483)
at play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:91)
at play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:91)
at scala.collection.immutable.List.foreach(List.scala:318)
at play.api.Play$$anonfun$start$1.apply$mcV$sp(Play.scala:91)
at play.api.Play$$anonfun$start$1.apply(Play.scala:91)
at play.api.Play$$anonfun$start$1.apply(Play.scala:91)
at play.utils.Threads$.withContextClassLoader(Threads.scala:21)
at play.api.Play$.start(Play.scala:90)
at play.core.StaticApplication.(ApplicationProvider.scala:55)
at play.core.server.NettyServer$.createServer(NettyServer.scala:244)
at play.core.server.NettyServer$$anonfun$main$3.apply(NettyServer.scala:280)
at play.core.server.NettyServer$$anonfun$main$3.apply(NettyServer.scala:275)
at scala.Option.map(Option.scala:145)
at play.core.server.NettyServer$.main(NettyServer.scala:275)
at play.core.server.NettyServer.main(NettyServer.scala)

MariaDB에는 연결이 되었지만 이후 작업에서 진행을 하지 못하는 것 같습니다.

set global innodb_file_format = BARRACUDA;
set global innodb_large_prefix = ON;

위 두 줄도 옵션을 설정했고, MariaDB를 재시작하니 초기화 되길래, my.cnf에도 옵션을 지정해 놓았습니다.
그래도 같은 에러가 나오고 있어서 더 이상 진행을 하지 못하고 있네요. 혹시 도움을 받을 수 있을까요?

프로젝트 목록에서 페이지수가 정확하지 않습니다.

yona-1.0.1 셋업하여 사용중입니다.(windows, mariaDB)

프로젝트는 9개를 등록하였고 1페이지 분량으로 보입니다.

그러나 하단의 페이징 네비게이션에는 4페이지까지 이동 가능합니다.

페이지수가 정확하지 않습니다.

SVN 사용시 파일명에 한글명이나 특수문자가 있으면 에러가 납니다.

먼저 yona 잘 사용하고 있습니다. 그런데 사용중에 에러가 발생하여 문의 드립니다.

SVN 사용해서 프로젝트를 Import나 Checkout, Commit, Update 하려고 하니 계속 에러가 발생하는데 원인을 찾아보니 파일명에 한글이나 특수문자가 들어가 있더군요.
yona에서 생성하는 SVN은 영문파일명만 지원하나요? 아니면 인코딩 세팅을 따로 해주는게 있는지 궁금합니다.

데이터 Export 콘솔에서 가능할까요?

근래에 좌충우돌 하면서 Yobi -> Yona를 무사히 마이그레이션 했습니다.
이번에 마이그레이션 하면서 보니까, 설정 -> 데이터 -> Export 한 내용을
그대로 Import 했을 때 매우 간결하게 진행되서 감동을 먹었습니다.

현재 백업을 구성하려는 도중, 이 부분을 Console 상에서 실행이 가능한지 여부를 알고 싶어서 이슈를 띄웠습니다.

만일 가능하다면, 추출한 json과 uploads, repo 디렉토리만 백업하면 될 것 같습니다

에디트 창에서 # 또는 @ 에러

안녕하세요?

CentOS 6.7, Yona 1.0.2 bin 설치해서 테스트 중입니다.

근데 에디트 창에서 # 이나 @ 를 치면 팝업이 떠서 이슈나 참조 목록이 떠야하는데, 바람개비만 돌다가 나타나지는 않습니다.

작성을 마치고 본문창에서는 마우스오버 시 제대로 내용이 요약되어서 보입니다.

혹시 이런 이슈가 있는지요??

admin 계정은 어떻게 되는지요?

사흘이나 걸린 우여곡절끝에 윈도7에 설치 완료했습니다.

둑흔둑흔 거리는 맘으로 페이지를 열었더니 어리둥절행....

Admin 계정은 어떻게 해야 하는지요?

프로젝트 정보 , 삭제 수정 안되나요?

image

프로젝트 정보를 테스트삼아 추가해보았는데 삭제가 안됩니다.
x 버튼 눌러도 반응이 없고.

j 라는 섹션자체를 삭제하는 것도 안되보이고

아직 미구현 상태인 부분인지, 저만 안되는것인지 모르겠습니다.

웹폰트 에 대하여

시간 나실 때 정리 하는 것이 좋을듯 하여 건의 드립니다.

yona를 SSL 적용시켜서 테스트중 발견한 내용입니다.

  1. yona는 docker에 올려서 포트 9000으로 올리고 아파치에 proxy로 연결합니다.
  2. startssl 의 인증서를 발급 받아서 아파치에 적용했습니다.
  3. application.conf에서 application.scheme="https"를 적용하니 잘 동작합니다.

사용상의 문제점은 안 보입니다. 화면이 깨지지도 않습니다.

크롬의 개발자 콘솔에서만 Mixed Content를 경고 합니다.

font

http://deview.kr/font/ 의 경로에 있는 웹폰트들 입니다.

아마도 yona의 전신인 yobi가 deview에서 발표되던 시점에 리소스들이 아닐까 싶습니다.

대체가 가능하다면

https://www.xpressengine.com/forum/22768426
jsdeliver CDN에 올려져 있는 폰트로 대체하는게 어떨까 합니다.

yona에서 사용하는 nanum light도 있습니다.
http://www.jsdelivr.com/?query=font-nanum

이상 건의 사항입니다.

MariaDB Connector 라이브러리 파일이 없네요

yona.zip 파일을 받아서 application.conf 에서 드라이버 변경후 서버를 실행했는데 드라이버 관련 오류가 발생하여 확인해보니 lib폴더에 MariaDB Connector가 없습니다..

커넥터 다운받아서 집어넣고 bin/yobi에 라이브러리 추가시켜 해결했습니다.

추가 한 이메일의 상태가 이상합니다.

FF(Firefox) 에서 이메일을 추가 하고 확인 메일을 보냈습니다.

크롬에서 확인을 하니 크롬에서는 정상적으로 등록되었지지만 FF에서는 상태가 안변합니다.

이상해서 FF에서 다시 확인메일 전송 을 누르고 FF에서 확인하니 제대로 나오는데

이번에는 크롬에서 상태가 변경되었습니다. 이게 의도된 설계인가요?

정리..하면

메일 확인을 한 브라우저는 '대표 이메일로 설정' 이 표시되고
yona2

그렇지 않은 브라우저는 '확인 메일 전송' 이 표시됩니다.
yona1

서버 관련 문의사항

안녕하세요. 오늘 처음 요나를 사용해보았습니다.

gitlab이나 redmine같은경우 서버 컴을 두어 설치해서 사용테스트해보았는데,

요나의 경우에는 어떤방식으로 서버가 형성되어있는건가요 ?

회원가입하고 프로젝트를만드니 서버설치없이 바로 사용이 가능하던데 웹호스팅형태인가요 ?

그러기에는 업로드도 몇십메가자리 영상이 훅훅 올라가는거보면 .. 유료여야하지않을까싶은데

그런것도없고, 심지어 비공개관리도 되니

궁금하네요! 다른 라이센스가 있는건가요 ?

답변부탁드려요 :D

로그인 에러가 발생합니다.

yona 재기동후 admin 계정이 로그인이 안되고 있습니다.

화면은 아래와 같이 에러메세지를 나오고요

Oops, an error occured
This exception has been logged with id 6pjo97c7o.

요기는 로그 입니다.

2016-04-06 13:20:38,758 - [ERROR] - from application in play-akka.actor.default-dispatcher-47

! @6pjo97c7o - Internal server error, for (GET) [/] ->

play.api.Application$$anon$1: Execution exception[[NullPointerException: null]]
at play.api.Application$class.handleError(Application.scala:296) ~[com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at play.api.DefaultApplication.handleError(Application.scala:402) [com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$3$$anonfun$applyOrElse$4.apply(PlayDefaultUpstreamHandler.scala:320) [com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$3$$anonfun$applyOrElse$4.apply(PlayDefaultUpstreamHandler.scala:320) [com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at scala.Option.map(Option.scala:145) [org.scala-lang.scala-library-2.10.4.jar:na]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$3.applyOrElse(PlayDefaultUpstreamHandler.scala:320) [com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$3.applyOrElse(PlayDefaultUpstreamHandler.scala:316) [com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at scala.concurrent.Future$$anonfun$recoverWith$1.apply(Future.scala:344) [org.scala-lang.scala-library-2.10.4.jar:na]
at scala.concurrent.Future$$anonfun$recoverWith$1.apply(Future.scala:343) [org.scala-lang.scala-library-2.10.4.jar:na]
at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32) [org.scala-lang.scala-library-2.10.4.jar:na]
at play.api.libs.iteratee.Execution$trampoline$.execute(Execution.scala:46) [com.typesafe.play.play-iteratees_2.10-2.3.6.jar:2.3.6]
at scala.concurrent.impl.CallbackRunnable.executeWithValue(Promise.scala:40) [org.scala-lang.scala-library-2.10.4.jar:na]
at scala.concurrent.impl.Promise$DefaultPromise.tryComplete(Promise.scala:248) [org.scala-lang.scala-library-2.10.4.jar:na]
at scala.concurrent.Promise$class.complete(Promise.scala:55) [org.scala-lang.scala-library-2.10.4.jar:na]
at scala.concurrent.impl.Promise$DefaultPromise.complete(Promise.scala:153) [org.scala-lang.scala-library-2.10.4.jar:na]
at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:23) [org.scala-lang.scala-library-2.10.4.jar:na]
at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:41) [com.typesafe.akka.akka-actor_2.10-2.3.4.jar:na]
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:393) [com.typesafe.akka.akka-actor_2.10-2.3.4.jar:na]
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) [org.scala-lang.scala-library-2.10.4.jar:na]
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) [org.scala-lang.scala-library-2.10.4.jar:na]
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) [org.scala-lang.scala-library-2.10.4.jar:na]
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) [org.scala-lang.scala-library-2.10.4.jar:na]
Caused by: java.lang.NullPointerException: null
at views.html.index.myProjectList$$anonfun$apply$1$$anonfun$apply$2.apply(myProjectList.template.scala:85) ~[yona.yona-1.0.0.jar:1.0.0]
at views.html.index.myProjectList$$anonfun$apply$1$$anonfun$apply$2.apply(myProjectList.template.scala:84) ~[yona.yona-1.0.0.jar:1.0.0]
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244) ~[org.scala-lang.scala-library-2.10.4.jar:na]
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244) ~[org.scala-lang.scala-library-2.10.4.jar:na]
at scala.collection.Iterator$class.foreach(Iterator.scala:727) ~[org.scala-lang.scala-library-2.10.4.jar:na]
at scala.collection.AbstractIterator.foreach(Iterator.scala:1157) ~[org.scala-lang.scala-library-2.10.4.jar:na]
at scala.collection.IterableLike$class.foreach(IterableLike.scala:72) ~[org.scala-lang.scala-library-2.10.4.jar:na]
at scala.collection.AbstractIterable.foreach(Iterable.scala:54) ~[org.scala-lang.scala-library-2.10.4.jar:na]
at scala.collection.TraversableLike$class.map(TraversableLike.scala:244) ~[org.scala-lang.scala-library-2.10.4.jar:na]
at scala.collection.AbstractTraversable.map(Traversable.scala:105) ~[org.scala-lang.scala-library-2.10.4.jar:na]
at views.html.index.myProjectList$$anonfun$apply$1.apply(myProjectList.template.scala:84) ~[yona.yona-1.0.0.jar:1.0.0]
at views.html.index.myProjectList$$anonfun$apply$1.apply(myProjectList.template.scala:82) ~[yona.yona-1.0.0.jar:1.0.0]
at play.twirl.api.TemplateMagic$.defining(TemplateMagic.scala:13) ~[com.typesafe.play.twirl-api_2.10-1.0.3.jar:1.0.3]
at views.html.index.myProjectList$.apply(myProjectList.template.scala:82) ~[yona.yona-1.0.0.jar:1.0.0]
at views.html.index.index$.apply(index.template.scala:171) ~[yona.yona-1.0.0.jar:1.0.0]
at views.html.index.index$.render(index.template.scala:218) ~[yona.yona-1.0.0.jar:1.0.0]
at views.html.index.index.render(index.template.scala) ~[yona.yona-1.0.0.jar:1.0.0]
at controllers.Application.index(Application.java:39) ~[yona.yona-1.0.0.jar:1.0.0]
at Routes$$anonfun$routes$1$$anonfun$applyOrElse$3$$anonfun$apply$3.apply(routes_routing.scala:1650) ~[yona.yona-1.0.0.jar:na]
at Routes$$anonfun$routes$1$$anonfun$applyOrElse$3$$anonfun$apply$3.apply(routes_routing.scala:1650) ~[yona.yona-1.0.0.jar:na]
at play.core.Router$HandlerInvokerFactory$$anon$4.resultCall(Router.scala:264) ~[com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at play.core.Router$HandlerInvokerFactory$JavaActionInvokerFactory$$anon$15$$anon$1.invocation(Router.scala:255) ~[com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at play.core.j.JavaAction$$anon$1.call(JavaAction.scala:55) ~[com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at Global$1.call(Global.java:190) ~[yona.yona-1.0.0.jar:na]
at actions.AnonymousCheckAction.call(AnonymousCheckAction.java:57) ~[yona.yona-1.0.0.jar:1.0.0]
at play.core.j.JavaAction$$anonfun$11.apply(JavaAction.scala:82) ~[com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at play.core.j.JavaAction$$anonfun$11.apply(JavaAction.scala:82) ~[com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24) [org.scala-lang.scala-library-2.10.4.jar:na]
at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24) [org.scala-lang.scala-library-2.10.4.jar:na]
at play.core.j.HttpExecutionContext$$anon$2.run(HttpExecutionContext.scala:40) ~[com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at play.api.libs.iteratee.Execution$trampoline$.execute(Execution.scala:46) [com.typesafe.play.play-iteratees_2.10-2.3.6.jar:2.3.6]
at play.core.j.HttpExecutionContext.execute(HttpExecutionContext.scala:32) ~[com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at scala.concurrent.impl.Future$.apply(Future.scala:31) ~[org.scala-lang.scala-library-2.10.4.jar:na]
at scala.concurrent.Future$.apply(Future.scala:485) ~[org.scala-lang.scala-library-2.10.4.jar:na]
at play.core.j.JavaAction$class.apply(JavaAction.scala:82) ~[com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at play.core.Router$HandlerInvokerFactory$JavaActionInvokerFactory$$anon$15$$anon$1.apply(Router.scala:252) ~[com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4$$anonfun$apply$5.apply(Action.scala:130) ~[com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4$$anonfun$apply$5.apply(Action.scala:130) ~[com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at play.utils.Threads$.withContextClassLoader(Threads.scala:21) ~[com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4.apply(Action.scala:129) ~[com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4.apply(Action.scala:128) ~[com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at scala.Option.map(Option.scala:145) [org.scala-lang.scala-library-2.10.4.jar:na]
at play.api.mvc.Action$$anonfun$apply$1.apply(Action.scala:128) ~[com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at play.api.mvc.Action$$anonfun$apply$1.apply(Action.scala:121) ~[com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at play.api.libs.iteratee.Iteratee$$anonfun$mapM$1.apply(Iteratee.scala:483) ~[com.typesafe.play.play-iteratees_2.10-2.3.6.jar:2.3.6]
at play.api.libs.iteratee.Iteratee$$anonfun$mapM$1.apply(Iteratee.scala:483) ~[com.typesafe.play.play-iteratees_2.10-2.3.6.jar:2.3.6]
at play.api.libs.iteratee.Iteratee$$anonfun$flatMapM$1.apply(Iteratee.scala:519) ~[com.typesafe.play.play-iteratees_2.10-2.3.6.jar:2.3.6]
at play.api.libs.iteratee.Iteratee$$anonfun$flatMapM$1.apply(Iteratee.scala:519) ~[com.typesafe.play.play-iteratees_2.10-2.3.6.jar:2.3.6]
at play.api.libs.iteratee.Iteratee$$anonfun$flatMap$1$$anonfun$apply$14.apply(Iteratee.scala:496) ~[com.typesafe.play.play-iteratees_2.10-2.3.6.jar:2.3.6]
at play.api.libs.iteratee.Iteratee$$anonfun$flatMap$1$$anonfun$apply$14.apply(Iteratee.scala:496) ~[com.typesafe.play.play-iteratees_2.10-2.3.6.jar:2.3.6]
at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24) [org.scala-lang.scala-library-2.10.4.jar:na]
at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24) [org.scala-lang.scala-library-2.10.4.jar:na]
... 6 common frames omitted

소스 컴파일시 입력줄이 너무 깁니다. 오류 발생

안녕하세요
소스를 git를 이용해서 컴앤드명령어로 컴파일 및 실행을 하면
"입력 줄이 너무 깁니다.
명령 구문이 올바르지 않습니다. "
오류가 나오고 있습니다.
환경은 원도우 환경입니다.
어디를 수정하면 되는지요..
아.. intellij연결해서 실행하면 잘되는데.. 툴이 없는곳에서 사용할라고...
그리고 설치설명이 너무 틀리는군요.. 업데이트가 필요해보입니다.
배포 방법좀 알려주세요..

빈커밋을 연동할 경우의 문제점

이런 경우는 거의 없을 거라고 봅니다만...

다음의 순서로 로컬에 저장소를 생성합니다.

  1. git init
  2. git commit --allow-empty -m "initialized commit"
  3. git remote add origin REMOTE-URL
  4. git push origin master

yona에서 코드를 누르면 페이지를 찾을 수 없다고 나옵니다.

Yobi - Yona H2 버전 문의사항

안녕하세요.
소규모 인원이 사용하고 있어 H2 버전을 관리가 쉬워 사용을 선호합니다만
Yona는 H2 버전이 메인이 아님으로 선뜻 선택이 어려운것 또한 사실입니다.
선택을 참고하기 위해 두가지 질문이 있습니다.

  1. Yobi 0.8.2 > Yona 1.0.x H2 버전을 사용하다. Yona 1.0.x > Yobi 0.8.2 변경이 가능한가요?
  2. MariraDB 버전에 있는 데이터 Export/Import 기능을 H2 버전에서 지원이 불가한지?
    image

답변 기다리겠습니다.^^
감사합니다.

비공개 프로젝트 문의

yona-1.0.1 셋업하여 사용중입니다.(windows, mariaDB)

프로젝트를 비공개로 생성한 후
팀원A를 프로젝트 멤버 추가 하였습니다.

이후 팀원A 접속시 권한이 없다고 나오며 접속이 불가합니다.

"권한이 없거나 존재하지 않는 프로젝트입니다."

제가 모르는 부분이 있는건지. 오류인건지.
문의드립니다.

@6pg164f2g: Cannot init the Global object 에러 발생

서버 환경은 다음과 같습니다.
OS : Windows 2008 Std 64bit
JAVA : 1.8.0_73
E:\yona-1.0.0\bin>java -version
java version "1.8.0_73"
Java(TM) SE Runtime Environment (build 1.8.0_73-b02)
Java HotSpot(TM) 64-Bit Server VM (build 25.73-b02, mixed mode)

yona 배포버젼을 하기 경로에 다운 받아 yona.bat를 실행하면 에러가 발생 되는데 원인을 모르겠네요.

E:\yona-1.0.0\bin>yona.bat
Play server process ID is 6828
Oops, cannot start the server.
@6pg164f2g: Cannot init the Global object
at play.api.WithDefaultGlobal$$anonfun$play$api$WithDefaultGlobal$$globalInstance$1.apply(Application.scala:59)
at play.api.WithDefaultGlobal$$anonfun$play$api$WithDefaultGlobal$$globalInstance$1.apply(Application.scala:53)
at play.utils.Threads$.withContextClassLoader(Threads.scala:21)
at play.api.WithDefaultGlobal$class.play$api$WithDefaultGlobal$$globalInstance(Application.scala:52)
at play.api.DefaultApplication.play$api$WithDefaultGlobal$$globalInstance$lzycompute(Application.scala:402)
at play.api.DefaultApplication.play$api$WithDefaultGlobal$$globalInstance(Application.scala:402)
at play.api.WithDefaultGlobal$class.global(Application.scala:68)
at play.api.DefaultApplication.global(Application.scala:402)
at play.api.WithDefaultConfiguration$class.play$api$WithDefaultConfiguration$$fullConfiguration(Application.scala:82)
at play.api.DefaultApplication.play$api$WithDefaultConfiguration$$fullConfiguration$lzycompute(Application.scala:402)
at play.api.DefaultApplication.play$api$WithDefaultConfiguration$$fullConfiguration(Application.scala:402)
at play.api.WithDefaultConfiguration$class.configuration(Application.scala:84)
at play.api.DefaultApplication.configuration(Application.scala:402)
at play.api.Application$class.$init$(Application.scala:274)
at play.api.DefaultApplication.(Application.scala:402)
at play.core.StaticApplication.(ApplicationProvider.scala:53)
at play.core.server.NettyServer$.createServer(NettyServer.scala:244)
at play.core.server.NettyServer$$anonfun$main$3.apply(NettyServer.scala:280)
at play.core.server.NettyServer$$anonfun$main$3.apply(NettyServer.scala:275)
at scala.Option.map(Option.scala:145)
at play.core.server.NettyServer$.main(NettyServer.scala:275)
at play.core.server.NettyServer.main(NettyServer.scala)
Caused by: java.lang.UnsupportedClassVersionError: Global : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at play.api.WithDefaultGlobal$class.play$api$WithDefaultGlobal$$javaGlobal(Application.scala:31)
at play.api.DefaultApplication.play$api$WithDefaultGlobal$$javaGlobal$lzycompute(Application.scala:402)
at play.api.DefaultApplication.play$api$WithDefaultGlobal$$javaGlobal(Application.scala:402)
at play.api.WithDefaultGlobal$$anonfun$play$api$WithDefaultGlobal$$globalInstance$1.apply(Application.scala:54)

sbt.ResolveException: unresolved dependency: org.apache.subversion#svn-javahl-api;1.8.1: not found

activator 실행시
sbt.ResolveException: unresolved dependency: org.apache.subversion#svn-javahl-api;1.8.1: not found
이렇게 에러가 나는데요...

yona의 문제는 아니지만..
이런 경우엔 어떻게 해야 할까요???

[root@XXX yona]# /data/activator/activator
[info] Loading project definition from /data/yona/project
[info] Set current project to yona (in build file:/data/yona/)
[yona] $ update
[info] Updating {file:/data/yona/}yobi...
[info] Resolving org.apache.subversion#svn-javahl-api;1.8.1 ...
[error] Server access Error: url=http://maven.tmatesoft.com/content/repositories/releases/org/apache/subversion/svn-javahl-api/1.8.1/svn-javahl-api-1.8.1.pom
[warn] module not found: org.apache.subversion#svn-javahl-api;1.8.1
[warn] ==== local: tried
[warn] /root/.ivy2/local/org.apache.subversion/svn-javahl-api/1.8.1/ivys/ivy.xml
[warn] ==== activator-launcher-local: tried
[warn] file:/data/activator-1.3.7-minimal/repository/org.apache.subversion/svn-javahl-api/1.8.1/ivys/ivy.xml
[warn] ==== public: tried
[warn] http://repo1.maven.org/maven2/org/apache/subversion/svn-javahl-api/1.8.1/svn-javahl-api-1.8.1.pom
[warn] ==== typesafe-releases: tried
[warn] https://repo.typesafe.com/typesafe/releases/org/apache/subversion/svn-javahl-api/1.8.1/svn-javahl-api-1.8.1.pom
[warn] ==== typesafe-ivy-releasez: tried
[warn] https://repo.typesafe.com/typesafe/ivy-releases/org.apache.subversion/svn-javahl-api/1.8.1/ivys/ivy.xml
[warn] ==== Typesafe Releases Repository: tried
[warn] http://repo.typesafe.com/typesafe/releases/org/apache/subversion/svn-javahl-api/1.8.1/svn-javahl-api-1.8.1.pom
[warn] ==== jgit-repository: tried
[warn] http://download.eclipse.org/jgit/maven/org/apache/subversion/svn-javahl-api/1.8.1/svn-javahl-api-1.8.1.pom
[warn] ==== scm-manager release repository: tried
[warn] http://maven.scm-manager.org/nexus/content/groups/public/org/apache/subversion/svn-javahl-api/1.8.1/svn-javahl-api-1.8.1.pom
[warn] ==== tmatesoft release repository: tried
[warn] http://maven.tmatesoft.com/content/repositories/releases/org/apache/subversion/svn-javahl-api/1.8.1/svn-javahl-api-1.8.1.pom
[warn] ==== julienrf.github.com: tried
[warn] http://julienrf.github.com/repo/org/apache/subversion/svn-javahl-api/1.8.1/svn-javahl-api-1.8.1.pom
[info] Resolving com.google.code.findbugs#jsr305;3.0.0 ...
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: UNRESOLVED DEPENDENCIES ::
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: org.apache.subversion#svn-javahl-api;1.8.1: not found
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[trace] Stack trace suppressed: run last *:update for the full output.
error sbt.ResolveException: unresolved dependency: org.apache.subversion#svn-javahl-api;1.8.1: not found
[error] Total time: 75 s, completed 2016. 3. 9 5:51:40
[yona] $

신규 가입자가 그룹/프로젝트 생성 가능

안녕하세요?

아래의 이슈에 이어서 하나 더 올립니다.

신규 가입자가 그룹을 생성하고 프로젝트를 생성하는게 당연하게 생각했는데, 원래 안되는거라는 내용을 보고 이슈 오픈합니다.

테스트계정은 이메일로 보내드리겠습니다.

Yobi 데이터 import 오류

zerglinggo@Yukino:~/yona$ ./run.sh
Play server process ID is 6223
[info] play - database [default] connected at jdbc:mysql://127.0.0.1:3306/zerglinggo_yona
[info] play - Starting application default Akka system.
[info] application - User uploaded temporary files are cleaned up...(0 of 0)
[info] play - Application started (Prod)
[info] play - Listening for HTTP on /127.0.0.1:9000
[debug] application - importing ASSIGNEE
[debug] application - truncate table ASSIGNEE
[debug] application - truncated table ASSIGNEE
[info] application - imported {3} ASSIGNEE
[info] application - imported sequence {ASSIGNEE_SEQ}
[debug] application - importing ATTACHMENT
[debug] application - truncate table ATTACHMENT
[debug] application - truncated table ATTACHMENT
[info] application - imported {9} ATTACHMENT
[info] application - imported sequence {ATTACHMENT_SEQ}
[debug] application - importing COMMENT_THREAD
[debug] application - truncate table COMMENT_THREAD
[debug] application - truncated table COMMENT_THREAD
[info] application - imported {0} COMMENT_THREAD
[info] application - imported sequence {COMMENT_THREAD_SEQ}
[debug] application - importing COMMENT_THREAD_N4USER
[debug] application - truncate table COMMENT_THREAD_N4USER
[debug] application - truncated table COMMENT_THREAD_N4USER
[info] application - imported {0} COMMENT_THREAD_N4USER
[debug] application - importing COMMIT_COMMENT
[debug] application - truncate table COMMIT_COMMENT
[debug] application - truncated table COMMIT_COMMENT
[info] application - imported {0} COMMIT_COMMENT
[info] application - imported sequence {COMMIT_COMMENT_SEQ}
[debug] application - importing EMAIL
[debug] application - truncate table EMAIL
[debug] application - truncated table EMAIL
[info] application - imported {0} EMAIL
[info] application - imported sequence {EMAIL_SEQ}
[debug] application - importing ISSUE
[debug] application - truncate table ISSUE
[debug] application - truncated table ISSUE
java.lang.NullPointerException
        at java.lang.String.getBytes(String.java:917)
        at org.mariadb.jdbc.internal.stream.PacketOutputStream.sendStream(PacketOutputStream.java:178)
        at org.mariadb.jdbc.internal.packet.dao.parameters.ReaderParameter.writeBinary(ReaderParameter.java:134)
        at org.mariadb.jdbc.internal.packet.send.SendPrepareParameterPacket.send(SendPrepareParameterPacket.java:93)
        at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.executePreparedQuery(AbstractQueryProtocol.java:568)
        at org.mariadb.jdbc.MariaDbServerPreparedStatement.executeBatch(MariaDbServerPreparedStatement.java:230)
        at com.jolbox.bonecp.StatementHandle.executeBatch(StatementHandle.java:424)
        at org.springframework.jdbc.core.JdbcTemplate$4.doInPreparedStatement(JdbcTemplate.java:1005)
        at org.springframework.jdbc.core.JdbcTemplate$4.doInPreparedStatement(JdbcTemplate.java:989)
        at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:644)
        at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:673)
        at org.springframework.jdbc.core.JdbcTemplate.batchUpdate(JdbcTemplate.java:989)
        at data.DefaultExchanger.batchUpdate(DefaultExchanger.java:319)
        at data.DefaultExchanger.importDataFromArray(DefaultExchanger.java:307)
        at data.DefaultExchanger.importData(DefaultExchanger.java:255)
        at data.DataService.importData(DataService.java:196)
        at controllers.SiteApp.importData(SiteApp.java:314)
        at Routes$$anonfun$routes$1$$anonfun$applyOrElse$54$$anonfun$apply$54.apply(routes_routing.scala:2058)
        at Routes$$anonfun$routes$1$$anonfun$applyOrElse$54$$anonfun$apply$54.apply(routes_routing.scala:2058)
        at play.core.Router$HandlerInvokerFactory$$anon$4.resultCall(Router.scala:264)
        at play.core.Router$HandlerInvokerFactory$JavaActionInvokerFactory$$anon$15$$anon$1.invocation(Router.scala:255)
        at play.core.j.JavaAction$$anon$1.call(JavaAction.scala:55)
        at Global$1.call(Global.java:190)
        at actions.AnonymousCheckAction.call(AnonymousCheckAction.java:57)
        at utils.SiteManagerAuthAction.call(SiteManagerAuthAction.java:39)
        at play.core.j.JavaAction$$anonfun$11.apply(JavaAction.scala:82)
        at play.core.j.JavaAction$$anonfun$11.apply(JavaAction.scala:82)
        at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24)
        at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24)
        at play.core.j.HttpExecutionContext$$anon$2.run(HttpExecutionContext.scala:40)
        at play.api.libs.iteratee.Execution$trampoline$.execute(Execution.scala:46)
        at play.core.j.HttpExecutionContext.execute(HttpExecutionContext.scala:32)
        at scala.concurrent.impl.Future$.apply(Future.scala:31)
        at scala.concurrent.Future$.apply(Future.scala:485)
        at play.core.j.JavaAction$class.apply(JavaAction.scala:82)
        at play.core.Router$HandlerInvokerFactory$JavaActionInvokerFactory$$anon$15$$anon$1.apply(Router.scala:252)
        at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4$$anonfun$apply$5.apply(Action.scala:130)
        at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4$$anonfun$apply$5.apply(Action.scala:130)
        at play.utils.Threads$.withContextClassLoader(Threads.scala:21)
        at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4.apply(Action.scala:129)
        at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4.apply(Action.scala:128)
        at scala.Option.map(Option.scala:145)
        at play.api.mvc.Action$$anonfun$apply$1.apply(Action.scala:128)
        at play.api.mvc.Action$$anonfun$apply$1.apply(Action.scala:121)
        at play.api.libs.iteratee.Iteratee$$anonfun$mapM$1.apply(Iteratee.scala:483)
        at play.api.libs.iteratee.Iteratee$$anonfun$mapM$1.apply(Iteratee.scala:483)
        at play.api.libs.iteratee.Iteratee$$anonfun$flatMapM$1.apply(Iteratee.scala:519)
        at play.api.libs.iteratee.Iteratee$$anonfun$flatMapM$1.apply(Iteratee.scala:519)
        at play.api.libs.iteratee.Iteratee$$anonfun$flatMap$1$$anonfun$apply$14.apply(Iteratee.scala:496)
        at play.api.libs.iteratee.Iteratee$$anonfun$flatMap$1$$anonfun$apply$14.apply(Iteratee.scala:496)
        at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24)
        at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24)
        at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:41)
        at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:393)
        at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
        at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
        at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
        at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
org.springframework.transaction.TransactionSystemException: Could not roll back JDBC transaction; nested exception is java.sql.SQLNonTransientConnectionException: Could not send query: Last stream not finished
        at org.springframework.jdbc.datasource.DataSourceTransactionManager.doRollback(DataSourceTransactionManager.java:290)
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.processRollback(AbstractPlatformTransactionManager.java:849)
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.rollback(AbstractPlatformTransactionManager.java:826)
        at data.DefaultExchanger.importData(DefaultExchanger.java:266)
        at data.DataService.importData(DataService.java:196)
        at controllers.SiteApp.importData(SiteApp.java:314)
        at Routes$$anonfun$routes$1$$anonfun$applyOrElse$54$$anonfun$apply$54.apply(routes_routing.scala:2058)
        at Routes$$anonfun$routes$1$$anonfun$applyOrElse$54$$anonfun$apply$54.apply(routes_routing.scala:2058)
        at play.core.Router$HandlerInvokerFactory$$anon$4.resultCall(Router.scala:264)
        at play.core.Router$HandlerInvokerFactory$JavaActionInvokerFactory$$anon$15$$anon$1.invocation(Router.scala:255)
        at play.core.j.JavaAction$$anon$1.call(JavaAction.scala:55)
        at Global$1.call(Global.java:190)
        at actions.AnonymousCheckAction.call(AnonymousCheckAction.java:57)
        at utils.SiteManagerAuthAction.call(SiteManagerAuthAction.java:39)
        at play.core.j.JavaAction$$anonfun$11.apply(JavaAction.scala:82)
        at play.core.j.JavaAction$$anonfun$11.apply(JavaAction.scala:82)
        at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24)
        at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24)
        at play.core.j.HttpExecutionContext$$anon$2.run(HttpExecutionContext.scala:40)
        at play.api.libs.iteratee.Execution$trampoline$.execute(Execution.scala:46)
        at play.core.j.HttpExecutionContext.execute(HttpExecutionContext.scala:32)
        at scala.concurrent.impl.Future$.apply(Future.scala:31)
        at scala.concurrent.Future$.apply(Future.scala:485)
        at play.core.j.JavaAction$class.apply(JavaAction.scala:82)
        at play.core.Router$HandlerInvokerFactory$JavaActionInvokerFactory$$anon$15$$anon$1.apply(Router.scala:252)
        at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4$$anonfun$apply$5.apply(Action.scala:130)
        at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4$$anonfun$apply$5.apply(Action.scala:130)
        at play.utils.Threads$.withContextClassLoader(Threads.scala:21)
        at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4.apply(Action.scala:129)
        at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4.apply(Action.scala:128)
        at scala.Option.map(Option.scala:145)
        at play.api.mvc.Action$$anonfun$apply$1.apply(Action.scala:128)
        at play.api.mvc.Action$$anonfun$apply$1.apply(Action.scala:121)
        at play.api.libs.iteratee.Iteratee$$anonfun$mapM$1.apply(Iteratee.scala:483)
        at play.api.libs.iteratee.Iteratee$$anonfun$mapM$1.apply(Iteratee.scala:483)
        at play.api.libs.iteratee.Iteratee$$anonfun$flatMapM$1.apply(Iteratee.scala:519)
        at play.api.libs.iteratee.Iteratee$$anonfun$flatMapM$1.apply(Iteratee.scala:519)
        at play.api.libs.iteratee.Iteratee$$anonfun$flatMap$1$$anonfun$apply$14.apply(Iteratee.scala:496)
        at play.api.libs.iteratee.Iteratee$$anonfun$flatMap$1$$anonfun$apply$14.apply(Iteratee.scala:496)
        at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24)
        at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24)
        at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:41)
        at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:393)
        at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
        at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
        at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
        at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
Caused by: java.sql.SQLNonTransientConnectionException: Could not send query: Last stream not finished
        at org.mariadb.jdbc.internal.util.ExceptionMapper.get(ExceptionMapper.java:123)
        at org.mariadb.jdbc.internal.util.ExceptionMapper.throwException(ExceptionMapper.java:69)
        at org.mariadb.jdbc.MariaDbStatement.executeQueryEpilog(MariaDbStatement.java:261)
        at org.mariadb.jdbc.MariaDbStatement.execute(MariaDbStatement.java:290)
        at org.mariadb.jdbc.MariaDbStatement.execute(MariaDbStatement.java:344)
        at org.mariadb.jdbc.MariaDbConnection.rollback(MariaDbConnection.java:532)
        at com.jolbox.bonecp.ConnectionHandle.rollback(ConnectionHandle.java:1272)
        at org.springframework.jdbc.datasource.DataSourceTransactionManager.doRollback(DataSourceTransactionManager.java:287)
        ... 46 more
Caused by: org.mariadb.jdbc.internal.util.dao.QueryException: Could not send query: Last stream not finished
        at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.sendQuery(AbstractQueryProtocol.java:390)
        at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.executeQuery(AbstractQueryProtocol.java:377)
        at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.executeQuery(AbstractQueryProtocol.java:334)
        at org.mariadb.jdbc.MariaDbStatement.execute(MariaDbStatement.java:280)
        ... 50 more
Caused by: java.io.IOException: Last stream not finished
        at org.mariadb.jdbc.internal.stream.PacketOutputStream.startPacket(PacketOutputStream.java:65)
        at org.mariadb.jdbc.internal.stream.PacketOutputStream.startPacket(PacketOutputStream.java:78)
        at org.mariadb.jdbc.internal.packet.send.SendTextQueryPacket.send(SendTextQueryPacket.java:101)
        at org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol.sendQuery(AbstractQueryProtocol.java:383)
        ... 53 more
[info] application - Data import failed. it took {0}
[info] a./sites/import - ,  - admin [09/Feb/2016:16:36:29 +0900] "POST /sites/import HTTP/1.1" 400 - "http:///sites/data" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0" 480ms
[info] a./messages.js - ,  - admin [09/Feb/2016:16:36:30 +0900] "GET /messages.js HTTP/1.1" 200 - "http:///sites/import" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0" 88ms

yobi-data-export를 사용하여 export한 json 파일을 Yona에서 import하면 위와 같은 오류가 발생합니다.

(이 오류가 발생하기 이전에, 테이블 이름은 소문자로 되어있었는데 Yona에서 Import를 사용시 테이블 이름을 대문자로 읽으려 하여 테이블을 찾지 못하는 오류가 발생하였습니다.
일단은 mariadb.cnf 에서 lower_case_table_names 를 1로 설정하여 해결했습니다만, 이 오류가 제 시스템만의 문제였는지 궁금하네요)

application.conf 적용이 안됩니다.

안녕하세요. 윈도우7에서 배포판(바이너리)로 설치중 문제입니다.

  1. yona.bat 실행 후, c:\yona\conf\application.conf 가 생성이 되었는데 mariadb PW를 변경해도 접속이 동일하게 안되는 문제가 발생하였습니다. 그래서 id 도 asdf 같은값으로 변경해보니 'yona'@'localhost' 로 기존과 동일하게 적용되네요.
    이 conf 파일이 적용이 안되는것 같은데요, 기존 Yobi 에서도 이런 이슈가 있었던것 같습니다.
    naver/yobi#956
    yona-1.0.0.jar 에 application.conf 에 들어있는 'yonadan' 으로 비밀번호를 바꾸니 잘 되네요.
  2. Database 'default' needs evolution!
    위와 같은 에러가 발생하였습니다. https://github.com/naver/yobi/issues/459 과 동일한 문제인데요,
    yona-1.0.0.jar 에 application.conf 와 application.conf.default 파일에 applyEvolutions.default=true
    속성을 추가하고 리패키징 해도 동일하게 안됩니다.. 구글링해보니 play framework 옵션이라 play를 실행할 때 옵션을 주면 된다는데, 배포판으로 하다보니 어떻게 해야할 지 모르겠네요. play 프레임워크도 전혀 모르구요..

또 기타 이슈? 불편함? 으로는
A. 상대경로로 설치
binary 를 받아 설치할 경우, 반드시 'yona' 에서 'bin\yona.bat' 커맨드를 실행해야함. bin 폴더에서 yona.bat 실행시 conf폴더가 \bin\conf 로 생기게 되네요. 반드시 'yona설치폴더' 에서 커맨드 실행해야 하는것을 매뉴얼에 강하게! 적었으면 좋겠습니다. md 파일 수정해서 pull request 해놓겠습니다.

B. 릴리즈 파일명 혼동문제
릴리즈 페이지에서 https://github.com/yona-projects/yona/releases 에서

  • 윗부분
    v1.0.0 …
    fix: Fix bug from commit 32b7d91
    ea6028e zip tar.gz
    에서 zip 은 실제로는 src파일인데 파일명이 v1.0.0.zip 이고
    아래 Download 부분에 바이너리 파일명은 yona-1.0.0.zip 이네요.
    소스와 바이너리 파일명이 혼란스러운데 아파치처럼 yona-1.0.0-src.zip, yona-1.0.0-bin.zip 등으로 구별하면 좋을것 같습니다.

프로젝트 삭제시 에러가 발생 합니다.

에러 메세지는 아래와 같습니다.

2016-03-25 11:17:22,049 - [ERROR] - from play in play-akka.actor.default-dispatcher-237
Cannot invoke the action, eventually got an error: javax.persistence.OptimisticLockException: Data has changed. updated [0] rows sql[delete from project where id=? and name=? and overview=? and vcs=? and siteurl=? and owner=? and created_date=? and last_issue_number=? and last_posting_number=? and last_pushed_date=? and default_reviewer_count=? and is_using_reviewer_count=? and project_scope=? and previous_owner_login_id is null and previous_name is null and previous_name_changed_time is null and original_project_id is null and organization_id is null] bind[null]

2016-03-25 11:17:22,069 - [ERROR] - from application in play-akka.actor.default-dispatcher-237

! @6pgec72gm - Internal server error, for (DELETE) [/assa/Nexpector_cloud/delete] ->

play.api.Application$$anon$1: Execution exception[[OptimisticLockException: Data has changed. updated [0] rows sql[delete from project where id=? and name=? and overview=? and vcs=? and siteurl=? and owner=? and created_date=? and last_issue_number=? and last_posting_number=? and last_pushed_date=? and default_reviewer_count=? and is_using_reviewer_count=? and project_scope=? and previous_owner_login_id is null and previous_name is null and previous_name_changed_time is null and original_project_id is null and organization_id is null] bind[null]]]
at play.api.Application$class.handleError(Application.scala:296) ~[com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at play.api.DefaultApplication.handleError(Application.scala:402) [com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$3$$anonfun$applyOrElse$4.apply(PlayDefaultUpstreamHandler.scala:320) [com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$3$$anonfun$applyOrElse$4.apply(PlayDefaultUpstreamHandler.scala:320) [com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at scala.Option.map(Option.scala:145) [org.scala-lang.scala-library-2.10.4.jar:na]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$3.applyOrElse(PlayDefaultUpstreamHandler.scala:320) [com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$3.applyOrElse(PlayDefaultUpstreamHandler.scala:316) [com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at scala.concurrent.Future$$anonfun$recoverWith$1.apply(Future.scala:344) [org.scala-lang.scala-library-2.10.4.jar:na]
at scala.concurrent.Future$$anonfun$recoverWith$1.apply(Future.scala:343) [org.scala-lang.scala-library-2.10.4.jar:na]
at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32) [org.scala-lang.scala-library-2.10.4.jar:na]
at play.api.libs.iteratee.Execution$trampoline$.execute(Execution.scala:46) [com.typesafe.play.play-iteratees_2.10-2.3.6.jar:2.3.6]
at scala.concurrent.impl.CallbackRunnable.executeWithValue(Promise.scala:40) [org.scala-lang.scala-library-2.10.4.jar:na]
at scala.concurrent.impl.Promise$DefaultPromise.tryComplete(Promise.scala:248) [org.scala-lang.scala-library-2.10.4.jar:na]
at scala.concurrent.Promise$class.complete(Promise.scala:55) [org.scala-lang.scala-library-2.10.4.jar:na]
at scala.concurrent.impl.Promise$DefaultPromise.complete(Promise.scala:153) [org.scala-lang.scala-library-2.10.4.jar:na]
at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:23) [org.scala-lang.scala-library-2.10.4.jar:na]
at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:41) [com.typesafe.akka.akka-actor_2.10-2.3.4.jar:na]
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:393) [com.typesafe.akka.akka-actor_2.10-2.3.4.jar:na]
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) [org.scala-lang.scala-library-2.10.4.jar:na]
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) [org.scala-lang.scala-library-2.10.4.jar:na]
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) [org.scala-lang.scala-library-2.10.4.jar:na]
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) [org.scala-lang.scala-library-2.10.4.jar:na]
Caused by: javax.persistence.OptimisticLockException: Data has changed. updated [0] rows sql[delete from project where id=? and name=? and overview=? and vcs=? and siteurl=? and owner=? and created_date=? and last_issue_number=? and last_posting_number=? and last_pushed_date=? and default_reviewer_count=? and is_using_reviewer_count=? and project_scope=? and previous_owner_login_id is null and previous_name is null and previous_name_changed_time is null and original_project_id is null and organization_id is null] bind[null]
at com.avaje.ebeaninternal.server.persist.dml.DmlHandler.checkRowCount(DmlHandler.java:95) ~[org.avaje.ebeanorm.avaje-ebeanorm-3.3.4.jar:na]
at com.avaje.ebeaninternal.server.persist.dml.DeleteHandler.execute(DeleteHandler.java:54) ~[org.avaje.ebeanorm.avaje-ebeanorm-3.3.4.jar:na]
at com.avaje.ebeaninternal.server.persist.dml.DmlBeanPersister.execute(DmlBeanPersister.java:86) ~[org.avaje.ebeanorm.avaje-ebeanorm-3.3.4.jar:na]
at com.avaje.ebeaninternal.server.persist.dml.DmlBeanPersister.delete(DmlBeanPersister.java:48) ~[org.avaje.ebeanorm.avaje-ebeanorm-3.3.4.jar:na]
at com.avaje.ebeaninternal.server.persist.DefaultPersistExecute.executeDeleteBean(DefaultPersistExecute.java:99) ~[org.avaje.ebeanorm.avaje-ebeanorm-3.3.4.jar:na]
at com.avaje.ebeaninternal.server.core.PersistRequestBean.executeNow(PersistRequestBean.java:456) ~[org.avaje.ebeanorm.avaje-ebeanorm-3.3.4.jar:na]
at com.avaje.ebeaninternal.server.core.PersistRequestBean.executeOrQueue(PersistRequestBean.java:478) ~[org.avaje.ebeanorm.avaje-ebeanorm-3.3.4.jar:na]
at com.avaje.ebeaninternal.server.persist.DefaultPersister.delete(DefaultPersister.java:592) ~[org.avaje.ebeanorm.avaje-ebeanorm-3.3.4.jar:na]
at com.avaje.ebeaninternal.server.persist.DefaultPersister.delete(DefaultPersister.java:396) ~[org.avaje.ebeanorm.avaje-ebeanorm-3.3.4.jar:na]
at com.avaje.ebeaninternal.server.core.DefaultServer.delete(DefaultServer.java:1867) ~[org.avaje.ebeanorm.avaje-ebeanorm-3.3.4.jar:na]
at com.avaje.ebeaninternal.server.core.DefaultServer.delete(DefaultServer.java:1857) ~[org.avaje.ebeanorm.avaje-ebeanorm-3.3.4.jar:na]
at com.avaje.ebean.Ebean.delete(Ebean.java:596) ~[org.avaje.ebeanorm.avaje-ebeanorm-3.3.4.jar:na]
at play.db.ebean.Model.delete(Model.java:171) ~[com.typesafe.play.play-java-ebean_2.10-2.3.6.jar:2.3.6]
at models.Project.delete(Project.java:672) ~[yona.yona-1.0.0.jar:1.0.0]
at controllers.ProjectApp.deleteProject(ProjectApp.java:343) ~[yona.yona-1.0.0.jar:1.0.0]
at Routes$$anonfun$routes$1$$anonfun$applyOrElse$103$$anonfun$apply$103.apply(routes_routing.scala:2450) ~[yona.yona-1.0.0.jar:na]
at Routes$$anonfun$routes$1$$anonfun$applyOrElse$103$$anonfun$apply$103.apply(routes_routing.scala:2450) ~[yona.yona-1.0.0.jar:na]
at play.core.Router$HandlerInvokerFactory$$anon$4.resultCall(Router.scala:264) ~[com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at play.core.Router$HandlerInvokerFactory$JavaActionInvokerFactory$$anon$15$$anon$1.invocation(Router.scala:255) ~[com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at play.core.j.JavaAction$$anon$1.call(JavaAction.scala:55) ~[com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at Global$1.call(Global.java:190) ~[yona.yona-1.0.0.jar:na]
at actions.AnonymousCheckAction.call(AnonymousCheckAction.java:57) ~[yona.yona-1.0.0.jar:1.0.0]
at actions.IsAllowedAction.call(IsAllowedAction.java:69) ~[yona.yona-1.0.0.jar:1.0.0]
at actions.AbstractProjectCheckAction.call(AbstractProjectCheckAction.java:85) ~[yona.yona-1.0.0.jar:1.0.0]
at play.db.ebean.TransactionalAction$1.call(TransactionalAction.java:21) ~[com.typesafe.play.play-java-ebean_2.10-2.3.6.jar:2.3.6]
at play.db.ebean.TransactionalAction$1.call(TransactionalAction.java:18) ~[com.typesafe.play.play-java-ebean_2.10-2.3.6.jar:2.3.6]
at com.avaje.ebeaninternal.server.core.DefaultServer.execute(DefaultServer.java:715) ~[org.avaje.ebeanorm.avaje-ebeanorm-3.3.4.jar:na]
at com.avaje.ebeaninternal.server.core.DefaultServer.execute(DefaultServer.java:709) ~[org.avaje.ebeanorm.avaje-ebeanorm-3.3.4.jar:na]
at com.avaje.ebean.Ebean.execute(Ebean.java:1264) ~[org.avaje.ebeanorm.avaje-ebeanorm-3.3.4.jar:na]
at play.db.ebean.TransactionalAction.call(TransactionalAction.java:18) ~[com.typesafe.play.play-java-ebean_2.10-2.3.6.jar:2.3.6]
at play.core.j.JavaAction$$anonfun$11.apply(JavaAction.scala:82) ~[com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at play.core.j.JavaAction$$anonfun$11.apply(JavaAction.scala:82) ~[com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24) [org.scala-lang.scala-library-2.10.4.jar:na]
at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24) [org.scala-lang.scala-library-2.10.4.jar:na]
at play.core.j.HttpExecutionContext$$anon$2.run(HttpExecutionContext.scala:40) ~[com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at play.api.libs.iteratee.Execution$trampoline$.execute(Execution.scala:46) [com.typesafe.play.play-iteratees_2.10-2.3.6.jar:2.3.6]
at play.core.j.HttpExecutionContext.execute(HttpExecutionContext.scala:32) ~[com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at scala.concurrent.impl.Future$.apply(Future.scala:31) ~[org.scala-lang.scala-library-2.10.4.jar:na]
at scala.concurrent.Future$.apply(Future.scala:485) ~[org.scala-lang.scala-library-2.10.4.jar:na]
at play.core.j.JavaAction$class.apply(JavaAction.scala:82) ~[com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at play.core.Router$HandlerInvokerFactory$JavaActionInvokerFactory$$anon$15$$anon$1.apply(Router.scala:252) ~[com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4$$anonfun$apply$5.apply(Action.scala:130) ~[com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4$$anonfun$apply$5.apply(Action.scala:130) ~[com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at play.utils.Threads$.withContextClassLoader(Threads.scala:21) ~[com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4.apply(Action.scala:129) ~[com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at play.api.mvc.Action$$anonfun$apply$1$$anonfun$apply$4.apply(Action.scala:128) ~[com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at scala.Option.map(Option.scala:145) [org.scala-lang.scala-library-2.10.4.jar:na]
at play.api.mvc.Action$$anonfun$apply$1.apply(Action.scala:128) ~[com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at play.api.mvc.Action$$anonfun$apply$1.apply(Action.scala:121) ~[com.typesafe.play.play_2.10-2.3.6.jar:2.3.6]
at play.api.libs.iteratee.Iteratee$$anonfun$mapM$1.apply(Iteratee.scala:483) ~[com.typesafe.play.play-iteratees_2.10-2.3.6.jar:2.3.6]
at play.api.libs.iteratee.Iteratee$$anonfun$mapM$1.apply(Iteratee.scala:483) ~[com.typesafe.play.play-iteratees_2.10-2.3.6.jar:2.3.6]
at play.api.libs.iteratee.Iteratee$$anonfun$flatMapM$1.apply(Iteratee.scala:519) ~[com.typesafe.play.play-iteratees_2.10-2.3.6.jar:2.3.6]
at play.api.libs.iteratee.Iteratee$$anonfun$flatMapM$1.apply(Iteratee.scala:519) ~[com.typesafe.play.play-iteratees_2.10-2.3.6.jar:2.3.6]
at play.api.libs.iteratee.Iteratee$$anonfun$flatMap$1$$anonfun$apply$14.apply(Iteratee.scala:496) ~[com.typesafe.play.play-iteratees_2.10-2.3.6.jar:2.3.6]
at play.api.libs.iteratee.Iteratee$$anonfun$flatMap$1$$anonfun$apply$14.apply(Iteratee.scala:496) ~[com.typesafe.play.play-iteratees_2.10-2.3.6.jar:2.3.6]
at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24) [org.scala-lang.scala-library-2.10.4.jar:na]
at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24) [org.scala-lang.scala-library-2.10.4.jar:na]
... 6 common frames omitted

2016-03-25 11:17:22,085 - [INFO] - from access./assa/Nexpector_cloud/delete in play-akka.actor.default-dispatcher-237
192.168.1.1 - - [25/Mar/2016:11:17:22 +0900] "DELETE /assa/Nexpector_cloud/delete HTTP/1.1" 500 - "http://106.248.228.114:9000/assa/Nexpector_cloud/deleteform" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36" -

확인 부탁 드립니다.

히스토리는 저장소 변경 하다가 error 가 발생 하였고 그이후로 프로젝트 삭제가 안된다고 합니다.

혹 DB 에서 직접 삭제 할 수 있는 쿼리 있으시면 부탁 드리겠습니다.
project 테이블이 릴레이션 관계 때문에 삭제 하기 힘드네요 ^^

Windows x64에서 기본 클래스 Play.core.server.NettyServer가 없습니다.

해당 이슈는 oracle에서 제공하는 jdk를 잘못 설치하면 나오는 에러입니다.
원래 java를 설치하면 C:\ProgramData\Oracle\Java\javapath; 경로가 제일 앞에 추가가 되는데
이 폴더 안에는 단순히 링크가 들어있을 뿐입니다.
한데 간혹 android 등의 개발을 위해 하위버전의 jdk라던가 설치를 하는 경우가 있습니다.
이경우는 해당 링크를 업데이트 해버려서 전혀 다른 버전을 가르킬 소지가 있습니다.

해당 에러가 발생했다면 java 버전이 안맞는 것이니 확인하시고 업데이트 해주세요.
아니면 시스템->환경설정->path에 아예 강제 path를 박는 것도 한 방편입니다..

C:\Program Files\Java\jre1.8.0_77\bin

이렇게.

알림 메일 상에 링크 URL 이상

yona-1.0.1 셋업하여 사용중입니다.(windows, mariaDB)

이슈에 대해 이미지를 첨부한 경우
알림 메일에서 링크가 127.0.0.1 로 되어 있어서 보이지 않습니다.

또한 Yona 링크, 그만 지켜보기, 알림 설정 링크 등도 127.0.0.1 로 되어 있어서
메일에서 yona 연결이 되지 않습니다.

설정이 부족한 것인지 문의드립니다.

프로젝트,게시물,이슈등 삭제시 업로드한 파일삭제여부

안녕하세요. 궁금한점이 있어 글을 작성합니다.

요비/요나에서 게시물,이슈에 파일업로드가 가능합니다.
만약 프로젝트,게시물,이슈 등이 삭제 되는경우 업로드된 파일도 같이 삭제가 됩니까?
db 및 uploads 폴더에 있는 파일삭제여부가 궁금합니다.

Application.conf 파일이 적용이 안됩니다.

안녕하세요,
우선 환경은 리눅스(우분투 14.04)이고, mariadb 를 사용하고 있습니다.

bin/yobi 를 통해 실행시키니, 문제가 다음과 같이 발생합니다.

2016-04-27 5 07 27

application.conf 파일에는 분명히 주석으로 되어있는데, mariadb@~~ 로 되지 않고, mysql@~~ 으로 되는 것을 보면 application.conf 파일이 제대로 적용이 되지 않는 것 같아보입니다.

application.conf 경로를 강제로 잡게 하는 방법은 있나요?

혹시나 해서 /etc/environment 에 YONA_HOME=/설치경로 로 잡고, source /etc/environment 로 갱신해봤습니다만,, 안되네요...ㅠㅠ

도와주세요!!

c0085950_50f936856df00

yona 소스설치 실패

안녕하세요?

소스를 수정해서 사용하려고 설치메뉴얼 보면서 소스설치를 시도해 보는데, 계속 에러납니다.

운영체제는 CentOS 6.7 과 ubuntu 14.04.4 에서 모두 마찬가지입니다.

[root@localhost yona]# ../activator
Getting com.typesafe.activator activator-launcher 1.2.10 ...
downloading http://repo.typesafe.com/typesafe/ivy-releases/com.typesafe.activator/activator-launcher/1.2.10/jars/activator-launcher.jar ...
    [SUCCESSFUL ] com.typesafe.activator#activator-launcher;1.2.10!activator-launcher.jar (3656ms)
downloading http://repo1.maven.org/maven2/org/scala-lang/scala-library/2.11.1/scala-library-2.11.1.jar ...
    [SUCCESSFUL ] org.scala-lang#scala-library;2.11.1!scala-library.jar (4311ms)
downloading http://repo.typesafe.com/typesafe/ivy-releases/com.typesafe.activator/activator-props/1.2.10/jars/activator-props.jar ...
    [SUCCESSFUL ] com.typesafe.activator#activator-props;1.2.10!activator-props.jar (65069ms)

:: problems summary ::
:::: WARNINGS
        module not found: com.typesafe.activator#activator-ui-common;1.2.10

    ==== local: tried

      /root/.ivy2/local/com.typesafe.activator/activator-ui-common/1.2.10/ivys/ivy.xml

      -- artifact com.typesafe.activator#activator-ui-common;1.2.10!activator-ui-common.jar:

      /root/.ivy2/local/com.typesafe.activator/activator-ui-common/1.2.10/jars/activator-ui-common.jar

    ==== activator-local: tried

      file:/root/activator-1.2.10-minimal/repository/com.typesafe.activator/activator-ui-common/1.2.10/ivys/ivy.xml

    ==== Maven Central: tried

      http://repo1.maven.org/maven2/com/typesafe/activator/activator-ui-common/1.2.10/activator-ui-common-1.2.10.pom

      -- artifact com.typesafe.activator#activator-ui-common;1.2.10!activator-ui-common.jar:

      http://repo1.maven.org/maven2/com/typesafe/activator/activator-ui-common/1.2.10/activator-ui-common-1.2.10.jar

    ==== typesafe-releases: tried

      http://repo.typesafe.com/typesafe/releases/com/typesafe/activator/activator-ui-common/1.2.10/activator-ui-common-1.2.10.pom

      -- artifact com.typesafe.activator#activator-ui-common;1.2.10!activator-ui-common.jar:

      http://repo.typesafe.com/typesafe/releases/com/typesafe/activator/activator-ui-common/1.2.10/activator-ui-common-1.2.10.jar

    ==== typesafe-ivy-releasez: tried

      http://repo.typesafe.com/typesafe/ivy-releases/com.typesafe.activator/activator-ui-common/1.2.10/ivys/ivy.xml

    problem while downloading module descriptor: http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/launcher-interface/0.13.5/ivys/ivy.xml: 연결 시간 초과 (63002ms)

        module not found: org.scala-sbt#launcher-interface;0.13.5

    ==== local: tried

      /root/.ivy2/local/org.scala-sbt/launcher-interface/0.13.5/ivys/ivy.xml

      -- artifact org.scala-sbt#launcher-interface;0.13.5!launcher-interface.jar:

      /root/.ivy2/local/org.scala-sbt/launcher-interface/0.13.5/jars/launcher-interface.jar

    ==== activator-local: tried

      file:/root/activator-1.2.10-minimal/repository/org.scala-sbt/launcher-interface/0.13.5/ivys/ivy.xml

    ==== Maven Central: tried

      http://repo1.maven.org/maven2/org/scala-sbt/launcher-interface/0.13.5/launcher-interface-0.13.5.pom

      -- artifact org.scala-sbt#launcher-interface;0.13.5!launcher-interface.jar:

      http://repo1.maven.org/maven2/org/scala-sbt/launcher-interface/0.13.5/launcher-interface-0.13.5.jar

    ==== typesafe-releases: tried

      http://repo.typesafe.com/typesafe/releases/org/scala-sbt/launcher-interface/0.13.5/launcher-interface-0.13.5.pom

      -- artifact org.scala-sbt#launcher-interface;0.13.5!launcher-interface.jar:

      http://repo.typesafe.com/typesafe/releases/org/scala-sbt/launcher-interface/0.13.5/launcher-interface-0.13.5.jar

    ==== typesafe-ivy-releasez: tried

      http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/launcher-interface/0.13.5/ivys/ivy.xml

    problem while downloading module descriptor: http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/completion_2.11/0.13.6-M1/ivys/ivy.xml: 연결 시간 초과 (63001ms)

        module not found: org.scala-sbt#completion_2.11;0.13.6-M1

    ==== local: tried

      /root/.ivy2/local/org.scala-sbt/completion_2.11/0.13.6-M1/ivys/ivy.xml

      -- artifact org.scala-sbt#completion_2.11;0.13.6-M1!completion_2.11.jar:

      /root/.ivy2/local/org.scala-sbt/completion_2.11/0.13.6-M1/jars/completion_2.11.jar

    ==== activator-local: tried

      file:/root/activator-1.2.10-minimal/repository/org.scala-sbt/completion_2.11/0.13.6-M1/ivys/ivy.xml

    ==== Maven Central: tried

      http://repo1.maven.org/maven2/org/scala-sbt/completion_2.11/0.13.6-M1/completion_2.11-0.13.6-M1.pom

      -- artifact org.scala-sbt#completion_2.11;0.13.6-M1!completion_2.11.jar:

      http://repo1.maven.org/maven2/org/scala-sbt/completion_2.11/0.13.6-M1/completion_2.11-0.13.6-M1.jar

    ==== typesafe-releases: tried

      http://repo.typesafe.com/typesafe/releases/org/scala-sbt/completion_2.11/0.13.6-M1/completion_2.11-0.13.6-M1.pom

      -- artifact org.scala-sbt#completion_2.11;0.13.6-M1!completion_2.11.jar:

      http://repo.typesafe.com/typesafe/releases/org/scala-sbt/completion_2.11/0.13.6-M1/completion_2.11-0.13.6-M1.jar

    ==== typesafe-ivy-releasez: tried

      http://repo.typesafe.com/typesafe/ivy-releases/org.scala-sbt/completion_2.11/0.13.6-M1/ivys/ivy.xml

        ::::::::::::::::::::::::::::::::::::::::::::::

        ::          UNRESOLVED DEPENDENCIES         ::

        ::::::::::::::::::::::::::::::::::::::::::::::

        :: com.typesafe.activator#activator-ui-common;1.2.10: not found

        :: org.scala-sbt#launcher-interface;0.13.5: not found

        :: org.scala-sbt#completion_2.11;0.13.6-M1: not found

        ::::::::::::::::::::::::::::::::::::::::::::::


:::: ERRORS
    Server access Error: 연결 시간 초과 url=http://repo.typesafe.com/typesafe/ivy-releases/com.typesafe.activator/activator-ui-common/1.2.10/ivys/ivy.xml

    Server access Error: 연결 시간 초과 url=http://repo.typesafe.com/typesafe/ivy-releases/com.typesafe.activator/activator-props/1.2.10/jars/activator-props.jar.sha1


:: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS
unresolved dependency: com.typesafe.activator#activator-ui-common;1.2.10: not found
unresolved dependency: org.scala-sbt#launcher-interface;0.13.5: not found
unresolved dependency: org.scala-sbt#completion_2.11;0.13.6-M1: not found
Error during sbt execution: Error retrieving required libraries
  (see /root/.sbt/boot/update.log for complete log)
Error: Could not retrieve activator-launcher 1.2.10

영문이나 다국어 지원은 안되나요?

개도국에서 일하고 있습니다. 이 나라에 자랑스런 저희 나라꺼를 소개시켜주려고 하는데요. 그 전에 제가 먼저 설치를 해봤는데, 영문 메뉴로의 전환기능이 없네요. 본래 영문이든 다국어 지원은 하지 않는 것인지요? 지원되지 않는다면 이건 feature request가 되겠군요. 안타깝지만, 다국어 되기 전까지는 GitLab 같은 다른 걸 활용해야 할 것 같네요.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.