Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CLASP for Google Apps Scripts development evaluation / decision #3722

Closed
16 tasks done
Tracked by #2385
aricforrest opened this issue Nov 16, 2022 · 9 comments
Closed
16 tasks done
Tracked by #2385

CLASP for Google Apps Scripts development evaluation / decision #3722

aricforrest opened this issue Nov 16, 2022 · 9 comments
Assignees
Labels
Complexity: Large Feature: Google Apps Scripts Automation related to Google Apps Scripts role: back end/devOps Tasks for back-end developers role: dev leads Tasks for technical leads and/or merge team members size: 0.5pt Can be done in 3 hours or less Status: Updated No blockers and update is ready for review

Comments

@aricforrest
Copy link
Member

aricforrest commented Nov 16, 2022

Overview

Evaluate if Google's CLASP (Command Line Apps Script Projects) should be utilized for Google Apps Script development.

Action Items

Understand what Google Apps Scripts and Google CLASP is:

  • Google Apps Scripts are serverless JavaScript runtime for G Suite.
  • Google CLASP is a command-line tool that allows you to locally create, pull, edit, and deploy Apps Scripts.

Review benefits to using CLASP:

  • Allows for collaboration of Apps Scripts using version control (e.g. GitHub)
  • Allows creating Apps Scripts locally in preferred IDE
    -- Nicer user interface
    -- auto completion of Google Apps Script classes and methods
    -- syntax highlighting
    -- keyboard shortcuts
    -- additional plugins such as linters
  • TypeScript support in Apps Scripts via ts2gas
  • NPM/ES6 module support in Apps Scripts via Webpack

Review required changes:

  • Existing Apps Scripts will need to be cloned via CLASP and pushed to GitHub
  • Documentation will need to be created introducing the Google Apps Scripts development process using CLASP
  • Node.js and NPM required on (Google Apps Scripts) developer workstation
  • Google Apps Script API needs to be enabled on the users' Google account

Review potential downsides:

  • Larger learning curve for Apps Script development

Review and Document

  • Write up Decision Record
  • Review with Team
  • Let product know what you are recommending
  • Get sign off
  • Create issues

Resources/Instructions

@aricforrest aricforrest added Feature: Google Apps Scripts Automation related to Google Apps Scripts size: 0.5pt Can be done in 3 hours or less role: dev leads Tasks for technical leads and/or merge team members labels Nov 16, 2022
@aricforrest aricforrest added this to New Issue Approval in Project Board via automation Nov 16, 2022
@aricforrest aricforrest added the ready for dev lead Issues that tech leads or merge team members need to follow up on label Nov 16, 2022
@blulady blulady added Ready for Prioritization and removed ready for dev lead Issues that tech leads or merge team members need to follow up on labels Nov 18, 2022
@ExperimentsInHonesty ExperimentsInHonesty moved this from New Issue Approval to Prioritized backlog in Project Board Nov 26, 2022
@jdingeman jdingeman added role: back end/devOps Tasks for back-end developers Complexity: Large labels Feb 5, 2023
@roslynwythe roslynwythe self-assigned this Feb 6, 2023
@roslynwythe roslynwythe moved this from Prioritized backlog to In progress (actively working) in Project Board Feb 6, 2023
@github-actions
Copy link

github-actions bot commented Feb 6, 2023

Hi @roslynwythe, thank you for taking up this issue! Hfla appreciates you :)

Do let fellow developers know about your:-
i. Availability: (When are you available to work on the issue/answer questions other programmers might have about your issue?)
ii. ETA: (When do you expect this issue to be completed?)

You're awesome!

P.S. - You may not take up another issue until this issue gets merged (or closed). Thanks again :)

@roslynwythe
Copy link
Member

Availability: 2/6 3-5 pm, 2/7 4-11 pm, 2/8 5-11 pm, 2/9 9-noon
ETA: 2/20

@github-actions github-actions bot added the Status: Updated No blockers and update is ready for review label Feb 10, 2023
@github-actions github-actions bot added 2 weeks inactive An issue that has not been updated by an assignee for two weeks and removed Status: Updated No blockers and update is ready for review labels Feb 17, 2023
@github-actions
Copy link

@roslynwythe

Please add update using the below template (even if you have a pull request). Afterwards, remove the 'To Update !' label and add the 'Status: Updated' label.

  1. Progress: "What is the current status of your project? What have you completed and what is left to do?"
  2. Blockers: "Difficulties or errors encountered."
  3. Availability: "How much time will you have this week to work on this issue?"
  4. ETA: "When do you expect this issue to be completed?"
  5. Pictures (optional): "Add any pictures of the visual changes made to the site so far."

If you need help, be sure to either: 1) place your issue in the developer meeting discussion column and ask for help at your next meeting, 2) put a "Status: Help Wanted" label on your issue and pull request, or 3) put up a request for assistance on the #hfla-site channel.

You are receiving this comment because your last comment was before Monday, February 13, 2023 at 11:17 PM PST.

@roslynwythe
Copy link
Member

roslynwythe commented Feb 18, 2023

Progress

  • Installed Node.js, npm, clasp, test google account, cloned wins-form-responses, made changes locally and did push/pull.
  • About to explore versioning and deployment

@jdingeman jdingeman added Status: Updated No blockers and update is ready for review and removed 2 weeks inactive An issue that has not been updated by an assignee for two weeks labels Feb 19, 2023
@roslynwythe
Copy link
Member

Progress:

  • installed node.js, clasp node module, @types/google-apps-script
  • used clasp to clone winsResponseForm from my Google Drive code.gs to my workstation, then edited in VS Code.
  • created .claspignore, then used clasp push to copy updated code to my personal Google Drive.

@roslynwythe
Copy link
Member

roslynwythe commented Feb 24, 2023

My conclusion is that use of clasp is feasible and does offer benefits, enabling local editing and committing of code. Code testing still must be done in the Google Apps Script IDE.

I would like to add a few additional benefits, changes and downsides to those already listed in the Action Items:

(Additional) benefits of using CLASP:

  • It would be possible for the dev team to create an npm package to implement a custom “build/deploy” process that integrates clasp along with other tools such as prettifier, transpiler and ESLint.

(Additional) Required Changes:

  • npm packages: clasp, @types/google-apps-script, clasp-env (optional).
  • if dev chooses to develop in ES6 or TypeScript, additional npm packages such as Babel and ts2gas are required to transpile the code and the dev would have to run the transpiler before every push (or create an npm script to do same).
    .gitignore and .claspignore will require update.

(Additional) potential downsides:

  • Larger learning curve for Apps Script development
  • It is not possible to run/debug code locally, so if code is edited locally, it must be pushed the Google Drive to run/debug.

@roslynwythe
Copy link
Member

Project Board automation moved this from In progress (actively working) to QA Mar 8, 2023
@HackforLABot HackforLABot moved this from QA to Done in Project Board Mar 8, 2023
@jdingeman jdingeman moved this from Done to QA in Project Board Mar 8, 2023
@ExperimentsInHonesty
Copy link
Member

@roslynwythe I see the DR document you made, but what happened? Did we decide to implement or not?
It needs to be listed on one the appropriate pages:
https://github.com/hackforla/website/wiki/Decision-Records-on-Solutions-Adopted
https://github.com/hackforla/website/wiki/Decision-Records-on-Solutions-Not-Implemented

It looks like this is not the only DR not placed on one of the above pages. There are a total of 4 missing.

Project Board automation moved this from QA to New Issue Approval Mar 19, 2023
@ExperimentsInHonesty
Copy link
Member

Moved the issue to the adopted. Resolved all the other DRs missing classifications

Project Board automation moved this from New Issue Approval to QA Mar 19, 2023
@ExperimentsInHonesty ExperimentsInHonesty moved this from QA to Done in Project Board Mar 19, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Complexity: Large Feature: Google Apps Scripts Automation related to Google Apps Scripts role: back end/devOps Tasks for back-end developers role: dev leads Tasks for technical leads and/or merge team members size: 0.5pt Can be done in 3 hours or less Status: Updated No blockers and update is ready for review
Projects
Project Board
  
Done
Development

No branches or pull requests

5 participants