fastruby / dash Goto Github PK
View Code? Open in Web Editor NEWA dashboard that pulls todos from Github and Pivotal Tracker.
Home Page: https://fastruby.github.io/dash/
A dashboard that pulls todos from Github and Pivotal Tracker.
Home Page: https://fastruby.github.io/dash/
Before we start...:
Branch/Commit:
main branch
Problem:
Please include a detailed description of the problem this feature would solve.
As a maintainer
I want to be running the latest version of Rails
So that I can use the latest features and reduce the tech debt in this project
Resources:
I did some research in this PR: #57 -- the good news is that there was a small failure, which I fixed in that PR, so upgrading should be easy
I will abide by the code of conduct
Hey,
Depending on the ruby version manager of your choice, this line might or might not work:
ruby '~> 2.6.0'
For instance, I'm using rvm
and I see this message in my console:
RVM used your Gemfile for selecting Ruby, it is all fine - Heroku does that too,
you can ignore these warnings with 'rvm rvmrc warning ignore /Users/etagwerker/Projects/fastruby/dash/Gemfile'.
To ignore the warning for all files run 'rvm rvmrc warning ignore allGemfiles'.
Unknown ruby interpreter version (do not know how to handle): ~>2.6.0.
More about this here: rvm/rvm#4751
So I think we should try using a value that is supported by most ruby version managers.
I can submit a PR to fix this.
Before we start...:
Branch/Commit:
gh-pages
branch.
Expected behavior:
External links in the page https://fastruby.github.io/dash/ should open in a new window or tab.
Actual behavior:
External links in the page https://fastruby.github.io/dash/ don't open in a new window or tab.
Steps to reproduce:
How do I achieve this behavior? Use the following format to provide a step-by-step guide:
Context and environment:
I will abide by the code of conduct
This issue is probably related to this JS code: https://github.com/fastruby/dash/blob/gh-pages/static/styleguide.js#L7 -- .cc @FionaDL @nykka
Before we start...:
Branch/Commit:
Main branch.
Describe the feature:
The app currently needs 2 commands to run properly, rails s
and bundle exec sidekiq
. We should have a Procfile.dev
file that runs the rails server and sidekiq (current Procfile doesn't work because it's intended for production)
Resources:
foreman
should NOT be added as a dependency in the gemfile https://github.com/ddollar/foreman/wiki/Don%27t-Bundle-Foreman
I will abide by the code of conduct
Before we start...:
Branch/Commit:
Main branch
Expected behavior:
I should be able to filter TODOs by project, pr/story title, status, and any other handy filtering option.
Actual behavior:
Everything is shown, it's hard to find what you are looking for if you have too many rows on a table.
I will abide by the [code of conduct] (https://github.com/rubygems/rubygems/blob/master/CODE_OF_CONDUCT.md)
Branch/Commit:
Main branch
Expected behavior:
Jobs for both rails version should be green.
Actual behavior:
Job for the next rails version seems to fail consistently with an error:
ActiveRecord::Encryption::Errors::Configuration:
key_derivation_salt is not configured. Please configure it via credentialactive_record_encryption.key_derivation_salt or by setting config.active_record.encryption.key_derivation_salt
Steps to reproduce:
Check the main branch CI latests runs.
I will abide by the [code of conduct] (https://github.com/rubygems/rubygems/blob/master/CODE_OF_CONDUCT.md)
Begin using Travis CI
Set up Circle CI with the right environment variables.
Branch/Commit:
main
Describe the feature:
It would be helpful to have in the top of the page when the Todos list was last synced so when I get in I'll know if it's up-to-date or not.
Problem:
Every time that I get inside dash I don't now if all the 3 types of lists are updated or not, so I need to ask to sync everything.
I will abide by the code of conduct
Before we start...:
Branch/Commit:
main
Expected behavior:
When opening a pull request, I would expect a template to guide me in submitting a thorough description of the changes that I'm submitting.
Actual behavior:
There is no pull request template. Opening a PR gives you a blank description
Steps to reproduce:
Screenshots and Videos
I will abide by the [code of conduct] (https://github.com/rubygems/rubygems/blob/master/CODE_OF_CONDUCT.md)
Branch/Commit:
main
Describe the feature:
We should have a service to handle the Pivotal Tracker api logic as same as we have the OctokitService
.
Problem:
It will help implement issue #3, allowing us to reuse the logic.
This will also make the code more well organized and it's a good practice.
I will abide by the code of conduct
Before we start...:
Branch/Commit:
Main branch.
Describe the feature:
We could have a Docker container to simplify all the setup.
Problem:
Currently, Dash requires Ruby, all the gems, postgresql and redis to work, along with running 2 commands to start the app.
I will abide by the code of conduct
Branch/Commit:
Main branch
Expected behavior:
New Rails applications use yarn
to handle node modules, we should use the same here for consistency.
Actual behavior:
The app uses npm
to handle node modules. On CI it is running both npm install
manually and then rails runs yarn install
when compiling the assets.
Notes:
We should document how to install node modules using yarn
and add a yarn.lock
file to the repo instead of the package-lock.json
file that is created by npm.
I will abide by the code of conduct
Branch/Commit:
Main branch
Expected behavior:
Merged PRs shouldn't be listed.
Actual behavior:
Some merged PRs are showing with a closed
state. After a manual sync of the PRs, they are gone.
I guess a simple workaround would be to NOT show PRs with closed
status.
Steps to reproduce:
I'm not sure what makes those PRs special. I think the issue is related to dash using the generic github user for the cronjob and the current logged user when manually syncing.
Screenshots and Videos
I will abide by the [code of conduct] (https://github.com/rubygems/rubygems/blob/master/CODE_OF_CONDUCT.md)
Branch/Commit:
Main branch
Describe the feature:
It would be helpful to have some kind of indicator for each PR to show that the PR has been stale for more than 24hs, that way it would be easier to see if there's some PR that needs to be prioritized. It could take the updated_at value to compare. Maybe the indicator can turn red if it's more than a few days to show more urgency.
Mockups:
I will abide by the code of conduct
IMPORTANT: please make sure you ask yourself all intro questions and fill all sections of the template.
Before we start...:
Branch/Commit:
Master branch
Expected behavior:
When a story gets deleted, it should also disappear from my Dash dashboard.
Actual behavior:
When a story is deleted, it's there in the dashboard and there's no way to make it go away.
Steps to reproduce:
I will abide by the [code of conduct] (https://github.com/rubygems/rubygems/blob/master/CODE_OF_CONDUCT.md)
I'm not sure if we need to handle the story being deleted or if we should give the user an option to remove stories manually.
IMPORTANT: please make sure you ask yourself all intro questions and fill all sections of the template.
Before we start...:
Branch/Commit:
main
branch.
Expected behavior:
Issues should just live in the database and not get randomly deleted by a background job.
Actual behavior:
Issues are getting randomly (?) deleted and you need to click "sync issues" to get the issues back.
Steps to reproduce:
How do I achieve this behavior? Use the following format to provide a step-by-step guide:
Context and environment:
Provide any relevant information about your setup (Customize the list accordingly based on what info is relevant to this project)
Testing at https://dash.ombulabs.com/
Screenshots and Videos
I know for a fact that I have issues in my account, yet they don't show up in my dashboard (they did show up yesterday)
Then I click the sync button for issues:
Then I see my issues:
I will abide by the [code of conduct] (https://github.com/rubygems/rubygems/blob/master/CODE_OF_CONDUCT.md)
Goal
It would be great id we could see our username when we are signed in.
Expectation
See your username while using dash.
Branch/Commit:
Main branch
Expected behavior:
I want to see in the readme the needed steps to run the complete app.
Actual behavior:
The readme shows only the rails s
server but says nathing about sidekiq.
I will abide by the [code of conduct] (https://github.com/rubygems/rubygems/blob/master/CODE_OF_CONDUCT.md)
It would be great if we could create a page like this one: https://ombulabs.github.io/pecas/
In that page we could show:
The code could be improved by only using one access token to access the GitHub API.
Since it is necessary to use the machine user's access token for a Heroku scheduler, it is also a good idea to also use the machine user for all API calls.
Expectation:
Change the access token being used to make calls to the API in the issues sync worker and pull requests sync worker.
Also:
Update the README to explain to new Dash users that they will need to create a machine user and add the Environment Variable for the API access token of the machine user.
Before we start...:
Branch/Commit:
Main branch.
Describe the feature:
As a User
I want to see account related buttons together
Problem:
Currently, the Edit Pivotal token
button is in the same group as the syncing buttons. Since it's mainly a configuration action related to the current user, maybe it would fit better closer to the 'Sign out' button.
This is just ux-ui suggestion to debate before implementing it though.
Mockups:
I will abide by the code of conduct
Branch/Commit:
Main branch
Expected behavior:
I should see a link to the CODE_OF_CONDUCT.md file inside this repo https://github.com/fastruby/dash/blob/main/CODE_OF_CONDUCT.md
Actual behavior:
CoC link points to rubygems https://github.com/rubygems/rubygems/blob/master/CODE_OF_CONDUCT.md
I will abide by the [code of conduct] (https://github.com/rubygems/rubygems/blob/master/CODE_OF_CONDUCT.md)
Link to COC in the README is broken
Branch/Commit:
Happening on main
branch.
Expected behavior:
As a user I would like to see my Pivotal Tracker stories automatically synced every 10 minutes (without having to click the sync for Pivotal Tracker stories)
Actual behavior:
As a user I see that my Pivotal Tracker stories are constantly out of sync with the right status in PT. Then I need to click the sync button for it to sync.
Steps to reproduce:
You will see that changes are not reflected in Dash. π’
Context and environment:
Not relevant. All environments.
Screenshots and Videos
Today I worked on this story:
When I was done with it I moved it to Accept/Reject status:
I waited for a couple of hours and I didn't see the status change in Dash. Only after clicking the Pivotal Tracker sync button I saw that its status changed:
I see that we are using Heroku scheduler in production:
But it seems that we are only syncing issues and pull requests on a schedule:
Potential Solution
I will abide by the code of conduct
I just cloned the repo to give it a look and run bundle
to get the dependencies and had this error "Your Ruby version is 2.7.1, but your Gemfile specified 2.6.6".
Anyway it can just be solved by commenting that line, but I don't know if it's necessary to have that in the Gemfile, or if there are Ruby version constraints in the project.
Line 4 in 11dbd9a
Branch/Commit:
Main branch
Expected behavior:
My owned PRs should always be displayed in the table.
Actual behavior:
Sometimes, a PR I have created is not in the list even though the PR is still open:
This PR for the stay updated project:
Is not showing up here:
(there are 2 PRs with the same name for other projects, but that should create any problem)
All the PRs were there initially, for some reason some PRs get deleted.
I think the issue might be that the PR had nobody assigned.
Steps to reproduce:
I don't have specific steps to reproduce this, it's something the app does automatically. I don't have way to reproduce it consistently but it happened a few times the last few days.
I will abide by the [code of conduct] (https://github.com/rubygems/rubygems/blob/master/CODE_OF_CONDUCT.md)
IMPORTANT: please make sure you ask yourself all intro questions and fill all sections of the template.
Before we start...:
Branch/Commit:
Main branch.
Describe the feature:
Using ActiveJob would make development easier, we can setup an inline
processor for development and sidekiq
for production. That way we won't depend on redis and sidekiq locally, making the setup easier.
Problem:
Currently, we have to setup redis and sidekiq and run them manually in separated processes to do the syncing.
Resources:
https://edgeguides.rubyonrails.org/active_job_basics.html#backends
I will abide by the code of conduct
Before we start...:
Branch/Commit:
Main branch
Expected behavior:
I should be able to click the table's headers to sort the tables using that column in ascendant or descendant order.
Actual behavior:
Tables has a fixed order but it's not clear what this order is (it changes when res-yncing).
I will abide by the [code of conduct] (https://github.com/rubygems/rubygems/blob/master/CODE_OF_CONDUCT.md)
Right now if I want to change or remove the API Token there's no way to do that (if, for example, my token gets compromised and I have to remove it and create a new one there's no way to change that on Dash)
Branch/Commit:
Main branch.
Expected behavior:
As a user trying to learn about Dash, I want to see a link to the GitHub Page for Dash in the sidebar's About section.
Actual behavior:
In the sidebar, we have a link to our private app's url: https://dash.ombulabs.com
I will abide by the [code of conduct] (https://github.com/rubygems/rubygems/blob/master/CODE_OF_CONDUCT.md)
IMPORTANT: please make sure you ask yourself all intro questions and fill all sections of the template.
Before we start...:
Branch/Commit:
main
Describe the feature:
Please include a detailed description of the feature you are requesting and any detail on itβs expected behavior.
As a User
I would like to see the PR owner
So that I can check if the PR was created by me or just assigned to review
Problem:
Today I have to go inside each PR to remember the ones I'm waiting for a request or that are waiting for me to review.
I will abide by the code of conduct
Branch/Commit:
Main branch
Expected behavior:
Gems should be cached so running the tests run faster
Actual behavior:
Caching is enabled, but something seems to be wrong because it takes more than 6 minutes for the install dependencies
step. First I thought it was because of the main
branch being used for rails 7, but it happens for rails 6 too.
Steps to reproduce:
Check any job on CI.
Screenshots and Videos
I will abide by the code of conduct
Before we start...:
Branch/Commit:
Main branch.
Describe the feature:
As a User
I want to see my GitHub PRs and issues from any organization
Problem:
Currently, we only fetch issues and pull requests from the organizations defined in an environment variable, so PRs made for projects outside those organizations are not tracked.
Considerations:
We may need to also support configuring which organizations/projects to fetch. I may want to only use dash to track some of them and not track less relevant organizations/projects.
We need to discuss this feature more to find possible problems and caveats before implementing.
I will abide by the code of conduct
As a user, I would like to see my pivotal stories with their updated status without having to enqueue a sync job.
Why
I want to see an updated list of pivotal stories every time I load the page
So that I don't have to synchronously sync my pivotal stories
Scenario:
Given that pivotal stories are constantly being updated
When I sign back in and open my dashboard
Then I should see a list of pivotal stories with their up to date status
Notes:
There should be a regular cron job (Heroku scheduler) that runs a rake task which does this:
Find all open pivotal stories in our system database
Call the Pivotal Tracker API to find the pivotal stories updated status and list of assignees
Update our database accordingly
It would be great to have a section that shows the Pr's and Issues that you have opened that are still open so that you can keep track of the progress being made in them.
Branch/Commit:
Main branch
Expected behavior:
I want to see a link to the repo in the fastruby organization
Actual behavior:
The link is outdated pointing to the project in the ombulabs organization:
Steps to reproduce:
1 - go to the Contributing section of the readme.
I will abide by the [code of conduct] (https://github.com/rubygems/rubygems/blob/master/CODE_OF_CONDUCT.md)
Branch/Commit:
Main branch
Expected behavior:
The sponsor image should be readable in both light and dark theme
Actual behavior:
Text is dark over dark background:
Steps to reproduce:
Go to the sponsoring section of the readme.
I will abide by the [code of conduct] (https://github.com/rubygems/rubygems/blob/master/CODE_OF_CONDUCT.md)
Branch/Commit:
Main branch.
Describe the feature:
As a User
I want to see the issues that I have created and are still open in the issues table
We could add an author
column like we did for pull requests.
Problem:
Currently, we only show issues assigned to us but not the ones we have created.
I will abide by the code of conduct
One exists for pull requests, but we also need one for issues.
Before we start...:
Branch/Commit:
Main branch.
Expected behavior:
Each user should be able to have their own database config for their environment.
The repo should track a database.yml.sample
file and copy it as database.yml
during setup. It should ignore the database.yml
file so each user can have their own config with no conflicts during pull or push.
Actual behavior:
database.yml
is versiones, so it will conflict with the user's database config.
I will abide by the [code of conduct] (https://github.com/rubygems/rubygems/blob/master/CODE_OF_CONDUCT.md)
Before we start...:
Branch/Commit:
main
branch.
Expected behavior:
The test suite should pass with both Rails 6.1 and 7.0 (edge)
Actual behavior:
The test suite is not passing with Rails 7.0 due to an encryption configuration error
Steps to reproduce:
It should be easy to reproduce if you have the latest version of rails (edge)
next bundle update
next bundle exec rspec
Context and environment:
lockbox
is no longer needed: https://edgeguides.rubyonrails.org/active_record_encryption.htmlLogs
Console log here: https://gist.github.com/etagwerker/9c37c3b0e0793fab992fac0363b76f05
Circle CI failure with Rails 7.0: https://app.circleci.com/pipelines/github/fastruby/dash/160/workflows/efcc7724-1964-4b65-a3fb-368729e38d4b/jobs/207
Potential Solutions?
lockbox
to ActiveRecord encryption?I will abide by the [code of conduct] (https://github.com/rubygems/rubygems/blob/master/CODE_OF_CONDUCT.md)
Branch/Commit:
Main branch.
Expected behavior:
I want to use the app with no errors in the console.
Actual behavior:
Browser console shows an error saying that it failed to fetch assets/favicons/manifest.json. There's this meta tag in the head for some reason <link rel="manifest" href="/assets/favicons/manifest.json">
.
Steps to reproduce:
I will abide by the [code of conduct] (https://github.com/rubygems/rubygems/blob/master/CODE_OF_CONDUCT.md)
Branch/Commit:
Main
Expected behavior:
Each PR should be shown only once if I'm the owner AND I'm the user that needs to do some action.
Actual behavior:
Currently, we are concatenating all different queries and that can lead to having the same PR as assignee and owner showing up at the same time.
Steps to reproduce:
Create a PR and wait for it to require a change on your side (like having requested changes)
Screenshots and Videos
I will abide by the [code of conduct] (https://github.com/rubygems/rubygems/blob/master/CODE_OF_CONDUCT.md)
Branch/Commit:
Main branch.
Describe the feature:
As a User
I want to see a checkbox at the top of each table with a labelHide owned ...
And when I check that
I want to filter out the PRs or Issues that I have created
We could store the status of those checkboxes in the cookies.
Problem:
Currently, if we create many PRs or many Issues that takes a long time to get done (mainly happening with issues), the table can get too big and assigned items can get lost between all the owned items.
It would be useful to check/uncheck that to filter the extra items.
I will abide by the code of conduct
Before we start...:
Branch/Commit:
main
branch
Expected behavior:
bin/setup should just work
Actual behavior:
bin/setup fails with yarn issue
Steps to reproduce:
Context and environment:
My environment has node installed with nvm. These are all the runtimes I have:
nvm list
-> v0.10.40
v12.16.3
v12.18.3
default -> 0.10.40 (-> v0.10.40)
node -> stable (-> v12.18.3) (default)
stable -> 12.18 (-> v12.18.3) (default)
iojs -> N/A (default)
unstable -> N/A (default)
lts/* -> lts/erbium (-> v12.18.3)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.22.0 (-> N/A)
lts/erbium -> v12.18.3
Logs
Here is the console output:
/bin/setup
== Installing dependencies ==
The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`.
The Gemfile's dependencies are satisfied
== Copying database files ==
== Copying sample files ==
== Preparing tmp directories ==
== Preparing database ==
Node version 0.10.40 is not supported, please use Node.js 4.0 or higher.
========================================
Your Yarn packages are out of date!
Please run `yarn install --check-files` to update.
========================================
To disable this check, please change `check_yarn_integrity`
to `false` in your webpacker config file (config/webpacker.yml).
== Command ["bin/rails db:prepare"] failed ==
I will abide by the [code of conduct] (https://github.com/rubygems/rubygems/blob/master/CODE_OF_CONDUCT.md)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.