[ 
https://issues.apache.org/jira/browse/AIRAVATA-2951?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18075270#comment-18075270
 ] 

ASF subversion and git services commented on AIRAVATA-2951:
-----------------------------------------------------------

Commit 49b83cbeaeddf3fc281163ad1d21ed45859390bb in airavata-portals's branch 
refs/heads/modernization from yasithdev
[ https://gitbox.apache.org/repos/asf?p=airavata-portals.git;h=49b83cbea ]

refactor(portal): monorepo tooling

- Introduce tooling/ workspace (@airavata/tooling) hosting shared configs:
  eslint.config.js (flat, ESLint 9); prettier.config.js (ESM); vite.config.js
  (exports defineAppConfig({appLabel, srcDir, entries, isLibrary, overrides}));
  tsconfig.base.json (strict:true, allowJs:false); README.md.
- Switch monorepo from Yarn 1 classic to npm workspaces. Delete yarn.lock;
  introduce package-lock.json. Pin [email protected]. Rewrite root
  scripts (lint/format/typecheck/test/test:e2e/build) to use
  `npm run X --workspaces --if-present`. Update Tiltfile to invoke npm
  instead of yarn. DEVIATION from umbrella guardrail "Yarn 1 classic" —
  rationale in 
docs/superpowers/specs/2026-04-21-track-c-monorepo-tooling-design.md.
- Yarn-specific `link:` dep protocol converted to `*` across 5 workspaces.
  Removed legacy .gitignore entry for package-lock.json (AIRAVATA-2951
  comment).
- Wire all 7 existing workspaces to @airavata/tooling: per-workspace
  eslint.config.js / prettier.config.js re-export or extend from the shared
  package; vite.config.js replaced with a 6-10 line defineAppConfig() call.
  Drop moved devDeps (eslint, eslint-plugin-vue, prettier, vite,
  @vitejs/plugin-vue) from each workspace.
- ESLint 9 strict violations fixed: 36 bug-level errors across the tree
  (eqeqeq, no-empty, no-prototype-builtins, vue/no-parsing-error,
  no-unused-vars).
- Vue Style Guide + Vue 2 deprecation rules (vue/require-explicit-emits,
  vue/require-default-prop, vue/require-prop-types, vue/order-in-components,
  vue/attributes-order, vue/no-deprecated-*, etc.) demoted from error to
  warn. DEVIATION from Q3 brainstorm decision: strict from day one. Track A's
  <script setup lang="ts"> rewrite will obsolete most of these (defineEmits/
  defineProps with TS types, modern slot syntax, no Options API ordering);
  forcing a fix in Track C was 5-8 hours of throwaway churn. Track A will
  re-enable full strict when the Options API is gone.
- Prettier first-pass format across the whole tree (376 files touched).
  .prettierignore added to skip Django-templated HTML, cookiecutter
  skeletons, Python files, lockfiles, build output.
- Fixed ESLint 9 flat-config gotcha: `ignores` must live in a config object
  with only the `ignores` key, not alongside `rules`/`languageOptions`.
  Missing this turned ignores into no-ops across plugin configs.

Functional parity: manifest keys byte-identical for all 4 Django apps
(admin, auth, dataparsers, workspace); all 7 workspaces build via
`npm run build --workspaces --if-present`; npm run lint exits 0; npm run
typecheck exits 0 (no .ts yet); prettier --check exits 0.

Pre-existing known state: vitest suites in apps/workspace don't run —
missing @vue/test-utils + jsdom env + broken plugin-api exports, all
pre-dating Track C. Deferred to Track Pre-A's test-harness work.

Spec: docs/superpowers/specs/2026-04-21-track-c-monorepo-tooling-design.md


> Django JS build failure: npm install fails with "enoent ENOENT: no such file 
> or directory..."
> ---------------------------------------------------------------------------------------------
>
>                 Key: AIRAVATA-2951
>                 URL: https://issues.apache.org/jira/browse/AIRAVATA-2951
>             Project: Airavata
>          Issue Type: Bug
>          Components: Django Portal
>            Reporter: Marcus Christie
>            Assignee: Marcus Christie
>            Priority: Major
>
> npm install error:
> Sporadically npm install and build fails. Could be related to having local 
> package references. Deleting the package-lock.json files seems to fix the 
> issue and the package-lock.json files seem to be the culprit. I'm proposing 
> that we just remove the package-lock.json files since
> # I'm seeing a lot of churn in these files. Doing {{npm install}} twice will 
> often result in changes in the file even though that shouldn't be possible. 
> So I'm not even sure what benefit they would provide if there weren't causing 
> build problems.
> # We're not the only ones running into this problem and looks like there are 
> still unresolved issues in npm (https://github.com/npm/npm/issues/17722)
> Error message:
> {noformat}
> npm ERR! path 
> /data/portals/django-seagrid/airavata-django-portal/django_airavata/static/common/node_modules/.staging/django-airavata-api-41f718eb/node_modules/ansi-regex
> npm ERR! code ENOENT
> npm ERR! errno -2
> npm ERR! syscall rename
> npm ERR! enoent ENOENT: no such file or directory, rename 
> '/data/portals/django-seagrid/airavata-django-portal/django_airavata/static/common/node_modules/.staging/django-airavata-api-41f718eb/node_modules/ansi-regex'
>  -> 
> '/data/portals/django-seagrid/airavata-django-portal/django_airavata/static/common/node_modules/.staging/ansi-regex-67ed7b67'
> npm ERR! enoent This is related to npm not being able to find a file.
> npm ERR! enoent 
> npm ERR! A complete log of this run can be found in:
> npm ERR!     /home/pga/.npm/_logs/2018-11-19T19_30_32_316Z-debug.log
> {noformat}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to