redash의 구성을 하루에 파악하고 Pull requests를 보냈다.
redash 소스 코드를 리노베이션하여 데이터 소스를 검색 할 때 표시하는 기능을 추가하여 redash에 풀 요청을 보냈습니다. (채용되는지는 미정, 진척이 있으면 보고합니다.)
→ Search 탭 자체가 없어지는 것 같기 때문에, 닫았습니다・・・orz
데이터 소스 이름을 표시하고 정렬할 수 있을 뿐이라고 하는 미수정입니다만, 메이저인 OSS에 풀릭을 던지는 것은 실은 처음입니다.
모처럼이므로 redash를 소스 코드로부터 움직이는 방법과 메이저인 OSS에의 풀릭의 던지는 방법의 순서를 정리해 보겠습니다.
redash를 소스 코드에서 이동
redash는 다음과 같은 구성으로 되어 있습니다.
프런트 엔드
· d3js
· AngularJS v1
· webpack
백엔드
· 도커
· 파이썬
· flask
· SQLAlchemy
· redis
· Postgre SQL
Docker Based Developer Installation Guide 을 참고로 로컬 환경에서 소스 코드로부터 움직일 수 있도록(듯이) 합니다.
본가 redash의 저장소에서 포크.
다음 명령으로 시작합니다.
# npmパッケージをインストール
$ npm install
# テスト用データベース作成
$ docker-compose run --rm server create_db
$ docker-compose run --rm postgres psql -h postgres -U postgres -c "create database tests"
# docker-composeでバックエンドのコンテナ群立ち上げ
$ docker-compose up
# フロントエンドビルド(初回のみ必要)
$ npm run build
# フロントエンド起動(webpack-dev-server)
$ npm run start
백엔드는
http://localhost:5000
로 시작,프런트 엔드(webpack-dev-server)는
http://localhost:8080
로 시작됩니다.Postgre SQL 내부 보기
백엔드는 다음과 같은 컨테이너가 시작됩니다.
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
53ea8093c321 redash_worker "/app/bin/docker-ent…" 3 days ago Up 20 hours 5000/tcp redash_worker_1
c5a218e0c0c3 redash_server "/app/bin/docker-ent…" 3 days ago Up 20 hours 0.0.0.0:5000->5000/tcp redash_server_1
95f3fcd66974 postgres:9.5.6-alpine "docker-entrypoint.s…" 3 days ago Up 20 hours 5432/tcp redash_postgres_1
0d7739b265e3 redis:3.0-alpine "docker-entrypoint.s…" 3 days ago Up 20 hours 6379/tcp redash_redis_1
redash의 데이터는 postgre SQL에 있으므로 데이터를 보려면 redash_postgres_1 컨테이너에 액세스합니다.
$ docker exec -it redash_postgres_1 bash
postgre sql의 명령은이 측면을 참조합니다.
참고: PostgreSQL과 MySQL에서 내가 자주 사용하는 시스템 명령 메모
docker-compose.yml을 보면
postgresql://postgres@postgres/postgres
로 연결되어 있기 때문에다음 명령을 사용하여 psql로 DB에 액세스할 수 있습니다.
# psql -U postgres postgres
코딩
백엔드 쪽은 아래의 기사가 참고가 됩니다.
・ 【Python】Flask로 API를 사쿠토 만들기
・ SQLAlchemy에서 SQL의 기본 쿼리 요약 (Python ORM)
코드 수정 → 보존시는 프런트 엔드 측, 백 엔드 측 모두 공동 오토 리로드 해주는 설정이되어 있기 때문에,
서버를 다시 시작하거나 브라우저를 다시로드 할 필요가 없습니다.
프런트 엔드는 ESLint 설정(.eslintrc 파일)을 따라야 합니다.
제 경우에는 편집기가 vscode를 사용하기 때문에,
아래 기사의 ESLint 설정을하고 있습니다.
참고: 2018년 자바스크립트 코드 포맷터 사정
코딩 스타일은 eslint 규칙을 따르지 않으면 풀릭시 lint 오류가 발생하므로 잘 설정하고 코딩 스타일을 따릅니다.
Pull requests 보내기
redash의 New pull request에서 Pull requests를 보냅니다.
compare across forks에서 fork한 리포지토리의 branch를 지정합니다.
나머지는 보통 풀릭과 같습니다.
Pull requests를 보낼 때의 주의점
비교적 큰 OSS의 경우는 Pull requests를 던질 때의 규칙이 readme에 쓰여지기도 합니다.
OSS별로 개발 이정표가 있으므로 각 리포지토리마다 규칙이 다릅니다.
다음은 redash의 Pull requests를 던질 때의 주의점입니다.
신규 기능 추가 시의 주의점에 쓰여진 것은
· 로드맵에 기여하지 않았는지 확인(Trello),
・ 새로운 경우 포럼에 대화를 세우고 토론합니다.
규칙이 된 것 같습니다.
이번은 상기 로드맵에 포함되지 않고, 미정정의 기능 때문에, 그대로 던져 버렸습니다.
끝에
주요 라이브러리와 도구이기 때문에 개선 할 수 있다면 모두 행복 할 수 있습니다.
팔에 자신이 있어 미수정 레벨이라면 겁먹지 않고 풀릭 던져 보는 것도 좋은 것이 아닐까 생각했습니다.
이 근처가 OSS의 좋은 곳이고, 이 기사가 내디디지 않고 있는 사람의 도움이 되면 좋다고 생각합니다.
Reference
이 문제에 관하여(redash의 구성을 하루에 파악하고 Pull requests를 보냈다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/teradonburi/items/ccc68ee762eb31336fd0
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
redash의 New pull request에서 Pull requests를 보냅니다.
compare across forks에서 fork한 리포지토리의 branch를 지정합니다.
나머지는 보통 풀릭과 같습니다.
Pull requests를 보낼 때의 주의점
비교적 큰 OSS의 경우는 Pull requests를 던질 때의 규칙이 readme에 쓰여지기도 합니다.
OSS별로 개발 이정표가 있으므로 각 리포지토리마다 규칙이 다릅니다.
다음은 redash의 Pull requests를 던질 때의 주의점입니다.
신규 기능 추가 시의 주의점에 쓰여진 것은
· 로드맵에 기여하지 않았는지 확인(Trello),
・ 새로운 경우 포럼에 대화를 세우고 토론합니다.
규칙이 된 것 같습니다.
이번은 상기 로드맵에 포함되지 않고, 미정정의 기능 때문에, 그대로 던져 버렸습니다.
끝에
주요 라이브러리와 도구이기 때문에 개선 할 수 있다면 모두 행복 할 수 있습니다.
팔에 자신이 있어 미수정 레벨이라면 겁먹지 않고 풀릭 던져 보는 것도 좋은 것이 아닐까 생각했습니다.
이 근처가 OSS의 좋은 곳이고, 이 기사가 내디디지 않고 있는 사람의 도움이 되면 좋다고 생각합니다.
Reference
이 문제에 관하여(redash의 구성을 하루에 파악하고 Pull requests를 보냈다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/teradonburi/items/ccc68ee762eb31336fd0
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(redash의 구성을 하루에 파악하고 Pull requests를 보냈다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/teradonburi/items/ccc68ee762eb31336fd0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)