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

yarn misuses cache on git dependencies #4722

Open
SEAPUNK opened this issue Oct 16, 2017 · 14 comments
Open

yarn misuses cache on git dependencies #4722

SEAPUNK opened this issue Oct 16, 2017 · 14 comments

Comments

@SEAPUNK
Copy link

SEAPUNK commented Oct 16, 2017

Do you want to request a feature or report a bug?
Bug

What is the current behavior?
misuses cache to install the git dependency at the wrong commit, seems to happen particularly when specifying git branch

If the current behavior is a bug, please provide the steps to reproduce.
sample repo: https://github.com/SEAPUNK/yarn-test-thing

  1. yarn add SEAPUNK/yarn-test-thing
  2. edit package.json's dependency from SEAPUNK/yarn-test-thing to SEAPUNK/yarn-test-thing#branch
  3. edit the yarn.lock file to change the single dependency from what it is to
yarn-test-thing@seapunk/yarn-test-thing#branch:
  version "0.0.1-something"
  resolved "https://codeload.github.com/seapunk/yarn-test-thing/tar.gz/3ea9fe7984b9005f3cc62b14ee4018013ae0db0f"

i.e. what it will be when you run yarn upgrade

  1. yarn install
  2. inspect node_modules/yarn-test-thing, and see that the files BRANCH_ONE and BRANCH_TWO are not there

What is the expected behavior?
installs the right version at commit 3ea9fe7984b9005f3cc62b14ee4018013ae0db0f

Please mention your node.js, yarn and operating system version.

node.js 8.7.0
yarn 1.2.1
macos high sierra


this is particularly annoying when you have committed a commit to the git dependency branch, ran yarn upgrade, check in the new yarn lockfile to the repo you're working on, only for yarn to not install that "resolved" version in the lockfile when someone else checks the code out and runs yarn install

@SEAPUNK
Copy link
Author

SEAPUNK commented Oct 16, 2017

i'm lazy so i created what i think the tl;dr of the repro steps are, if they don't work, lmk and i'll give you something that should work better

@jwarby
Copy link

jwarby commented Nov 17, 2017

Also just got bitten by this with a GitHub dependency - CI build failed after pushing, even though yarn.lock was updated with the new commit hash. Worked around the issue for now by making CI pipeline run yarn cache clean after the other steps in my build.

@SEAPUNK
Copy link
Author

SEAPUNK commented Feb 15, 2018

got bitten by it again; the problem is that yarn is caching the package by its version in package.json, and not by git commit; so it sees in the lockfile that version is 0.0.1-something, looks for the cache for 0.0.1-something of the package, and uses that

the fix for this is to cache these installed-from-git packages by git commit, so in the yarn cache dir it'd look something like git-yarn-test-thing-3ea9fe7984b9005f3cc62b14ee4018013ae0db0f instead of npm-yarn-test-thing-0.0.1-something

@isaachinman
Copy link

The methodology outline by @SEAPUNK seems sound, installing from a git repository directly would indicate you are interested in having the latest codebase irrespective of versions/releases.

@cmawhorter
Copy link

cmawhorter commented Aug 22, 2018

this seemed to be fixed (in 1.7 i think) but since upgrading to 1.9.4 it is back to broken and worse.

in the prior problematic state, i used to be able to bump the version in the target dep to force yarn to update it, but now that's not working and i've been removing the yarn.lock file to get around the issue.

i admittedly forgot about yarn cache clean so can't comment on that atm.

Edit: yarn clean cache works

@lidel
Copy link

lidel commented Aug 22, 2018

Alternative workaround for github dev deps is to define it as URL:

"devDependencies": {
  "yarn-test-thing": "https://github.com/seapunk/yarn-test-thing/tarball/3ea9fe7984b9005f3cc62b14ee4018013ae0db0f/yarn-test-thing.tar.gz",

It works around github-specific handlers and just does a plain HTTP download with a checksum (works fine for me so far).

@FelipeCoimbra
Copy link

Has this issue been resolved in recent yarn versions? I'm experiencing this problem using yarn 1.6.0 and wondering if I can solve this by upgrading.

@bantic
Copy link

bantic commented Apr 26, 2019

I've observed this behavior as well, with @rondale-sc, using both yarn 1.15.2 and yarn 1.13.0. In our case it appears that the way the dependency is specified mattered. I.e., specifying it as user/repo#SHA does not update as expected (more details below), but specifying as https://github.com/user/repo.git#SHA does work as expected.

The situation:

  "devDependencies": {
    "my-dep": "user/repo#SHA"
  • Someone else makes a commit that updates the dep SHA in package.json and the resolved sha and url in yarn.lock, but the version of the dependency doesn't change.
  • I do git pull and pick up that commit
  • I do yarn install, and it does not update the package on disk to the one specified by the sha.

I was able to fix this in 3 different ways:

  1. rm yarn.lock && yarn install
  2. rm -rf node_modules && yarn cache clean && yarn install
  3. Change the dependency specification to more explicit URL form https://github.com/user/repo.git#SHA before making the commit as described above.

Observed with node 8.15 and macOS Mojave.

Updated to point out that we were specifying deps using the short user/repo#SHA Github URL form, but that it works when using the more explicit URL form https://github.com/user/repo.git#SHA.

@bantic
Copy link

bantic commented Apr 26, 2019

Another update to the previous comment, with some more explicit reproduction steps. I've tested a bit and confirmed that this issue is indeed (at least for me) limited only to usage of the user/repo#SHA from of the dependency specifier.

To reproduce:

  1. Assume that there are two separate checkouts of a given repo called checkout-A and checkout-B. The repo has a package.json with a devDependency pinned to a specific SHA using the github url form, like so: "devDependencies": { "my-dep": "user/repo#SHA-1" }
  2. The user with checkout-A edits package.json locally to change the SHA from SHA-1 to SHA-2. The relevant part of their edited package.json now looks like: "devDependencies": { "my-dep": "user/repo#SHA-2" }
  3. The user in checkout-A does yarn. This updates the "my-dep" code on disk to SHA-2, as expected, and also modifies the yarn.lock. The user commits the changed package.json and yarn.lock and pushes the commit
  4. User in checkout-B does git pull and gets the commit. They then do yarn and the code on disk for "my-dep" does not update to SHA-2 that way it did for user A.
  5. User in checkout-B does yarn cache clean && yarn and again, the "my-dep" on disk does not update to SHA-2, that way it would be expected to
  6. User in checkout-B does rm -rf node_modules && yarn cache clean && yarn and now the "my-dep" on disk is updated to SHA-2

I ran through the steps above using yarn 1.15.2, node 8.15.1 and macOS Mojave.
I also ran through the steps above using explicit URLs in the form https://github.com/user/repo.git#SHA and the yarn described in step 4 above did work as expected.

cyril-sf pushed a commit to Addepar/ember-table that referenced this issue Apr 26, 2019
Change from `user/repo#sha` to `https://github.com/user/repo.git#sha` form.
Yarn has a bug related to installing changed SHA versions when they are pinned in `user/repo` form,
that could cause consumers of this addon (or developers of this addon) to fail to get updated
dependency code via `yarn install`, see: yarnpkg/yarn#4722 (comment)
notbakaneko added a commit to notbakaneko/osu-web that referenced this issue May 24, 2019
depoulo added a commit to depoulo/are-you-es5 that referenced this issue Jul 8, 2019
I had removed it in obahareth#13 (sorry, I had been struck by yarnpkg/yarn#4722)

The behaviour _with_ the trailing path delimiter is more correct, as without it in theory modules starting with the same name as a non-ES5 node_module would be unneccessarily transpiled.

This is all assuming the leading and trailing slash before obahareth#13 were meant as path delimiters and not RegExp delimiters, meaning that anyone wanting to use the RegExp would (and will) have to add surrounding slashes or `new RegExp()` manually, as in `/<place-output-here>/` or `new RegExp('<place-output-here>')` (personally, I'm writing the output of _are-you-es5_ to a file on _postinstall_ and read it into a `new RegExp()` in the webpack config).
@cellvia
Copy link

cellvia commented Jul 24, 2019

im hitting this issue, bummer as i was trying to move our whole CI process to use yarn.

the error for me is with tags, not specific commit hash:

error Command failed.
Exit code: 1
Command: git
Arguments: fetch --tags
Directory: c:\yarn-cache\v4\.tmp\4f6877135181ea234579e349f25b0ce3
Output:
From https://gitlab.com/xxx/dashboard
 ! [rejected]        v1.0.x     -> v1.0.x  (would clobber existing tag)
 ! [rejected]        v1.x.x     -> v1.x.x  (would clobber existing tag)
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

hsource added a commit to pxpeterxu/react-navigation-core that referenced this issue Dec 13, 2019
Yarn relies on package.json versions to see whether to cache a package.
This fix makes it fetch the new version instead of relying on cache.
yarnpkg/yarn#4722
@pascalw
Copy link

pascalw commented Jan 8, 2020

I was bitten by this as well. @bantic's observation seems correct, it doesn't occur when the dependency is specified as https://github.com/user/repo.git#SHA instead of user/repo#SHA (same for specifying a branch instead of a SHA in package.json).

pascalw added a commit to googlefonts/specimen-skeleton that referenced this issue Jan 8, 2020
pascalw added a commit to googlefonts/specimen-skeleton that referenced this issue Jan 8, 2020
devversion added a commit to devversion/material2 that referenced this issue Apr 28, 2020
The dev-infra-private package sometimes is not updated
locally even if the integrity and SHA changed. This
seems to be because of a bug in yarn where the package
is restored from cache. A workaround seems to be using
the actual `.git` https URL.

See: yarnpkg/yarn#4722.
jelbourn pushed a commit to angular/components that referenced this issue Apr 28, 2020
The dev-infra-private package sometimes is not updated
locally even if the integrity and SHA changed. This
seems to be because of a bug in yarn where the package
is restored from cache. A workaround seems to be using
the actual `.git` https URL.

See: yarnpkg/yarn#4722.
jelbourn pushed a commit to angular/components that referenced this issue Apr 28, 2020
The dev-infra-private package sometimes is not updated
locally even if the integrity and SHA changed. This
seems to be because of a bug in yarn where the package
is restored from cache. A workaround seems to be using
the actual `.git` https URL.

See: yarnpkg/yarn#4722.
trik added a commit to gnucoop/ajf that referenced this issue Apr 29, 2020
The dev-infra-private package sometimes is not updated
locally even if the integrity and SHA changed. This
seems to be because of a bug in yarn where the package
is restored from cache. A workaround seems to be using
the actual `.git` https URL.

See: yarnpkg/yarn#4722.
trik added a commit to gnucoop/gngt that referenced this issue Apr 29, 2020
The dev-infra-private package sometimes is not updated
locally even if the integrity and SHA changed. This
seems to be because of a bug in yarn where the package
is restored from cache. A workaround seems to be using
the actual `.git` https URL.

See: yarnpkg/yarn#4722.
tuukka added a commit to gatesolve/gatesolve-ui that referenced this issue May 4, 2020
Without this, Yarn uses a version from its cache instead of the
version specified in yarn.lock.

Solution: "specifying it as user/repo#SHA does not update as expected
(more details below), but specifying as
https://github.com/user/repo.git#SHA does work as expected."

yarnpkg/yarn#4722 (comment)
tuukka added a commit to gatesolve/gatesolve-ui that referenced this issue May 4, 2020
Without this, Yarn uses a version from its cache instead of the
version specified in yarn.lock.

Solution: "specifying it as user/repo#SHA does not update as expected
(more details below), but specifying as
https://github.com/user/repo.git#SHA does work as expected."

yarnpkg/yarn#4722 (comment)
tuukka added a commit to gatesolve/gatesolve-ui that referenced this issue May 4, 2020
Without this, Yarn uses a version from its cache instead of the
version specified in yarn.lock.

Solution: "specifying it as user/repo#SHA does not update as expected
(more details below), but specifying as
https://github.com/user/repo.git#SHA does work as expected."

yarnpkg/yarn#4722 (comment)
tuukka added a commit to gatesolve/gatesolve-ui that referenced this issue Jun 1, 2020
Without this, Yarn uses a version from its cache instead of the
version specified in yarn.lock.

Solution: "specifying it as user/repo#SHA does not update as expected
(more details below), but specifying as
https://github.com/user/repo.git#SHA does work as expected."

yarnpkg/yarn#4722 (comment)
tuukka added a commit to gatesolve/gatesolve-ui that referenced this issue Jun 1, 2020
Without this, Yarn uses a version from its cache instead of the
version specified in yarn.lock.

Solution: "specifying it as user/repo#SHA does not update as expected
(more details below), but specifying as
https://github.com/user/repo.git#SHA does work as expected."

yarnpkg/yarn#4722 (comment)
@jarod-legault
Copy link

Just ran into this issue. Thanks to @bantic I was able to work around it using this method:

  1. Change the dependency specification to more explicit URL form https://github.com/user/repo.git#SHA before making the commit as described above.

Note: I was also able to work around this issue by running yarn clean cache before running yarn install each time, but the above solution does not require additional steps in the build process.

tempo22 added a commit to overloop-crm/ember-table that referenced this issue Apr 1, 2021
* Revert "[bugfix] Recompute row meta index when previous prepend causes shift (Addepar#623)" (Addepar#651)

This reverts commit 5efba8c.

* Fix build (Addepar#661)

* Update addepar-style-toolbox to fix import issue

* [CHORE] allow ember-release to fail tests

This is temporary until we have time to investigate what is going on.

* Upgrade several project dependencies (Addepar#658)

* Upgrade linting packages

* Upgrade ember-math-helpers

* Upgrade ember-native-dom-helpers

* Upgrade ember-angle-bracket-invocation-polyfill

* Upgrade ember-fetch

* Upgrade ember-cli-dependency-checker

* Upgrade ember-try

* Upgrade ember-auto-import

* Upgrade default addon dependencies

* Upgrade ember-cli-sass

* Upgrade ember-compatibility-helpers

* Upgrade @html-next/vertical-collection

* Upgrade husky

* Revert "Upgrade ember-cli-sass"

This reverts commit ad3fc22.

* Add .yarnrc and .npmrc

This will allow to add the yarn.lock file and to rely on the public Addepar packages available for all.

* Add yarn.lock

* [FEATURE] Add support for context menu on header cells (Addepar#662)

```
{{ember-th api=r onContextMenu='actionHandler'}}
```

* don't try to notify the cell value of a change if the context is being destroyed

* [CHORE] Node 6 support - pin jsdom

* Pin ember-cli-page-object

Fix build issue on Travis
https://travis-ci.org/Addepar/ember-table/jobs/513359138

Related to san650/ember-cli-page-object#446

* [FEATURE] Use `sortEmptyLast` on the header to have empty values at the end of a sort result.

```
<EmberThead @sortEmptyLast=true />
```

* ember-th renders only the block when one is passed.

Add ember-th/sort-indicator and ember-th/resize-handle

It allows to fully customize the content of `ember-th` without the need to duplicate the logic for sorting and resizing

```
{{#ember-th |columnValue columnMeta|}}
  {{columnValue.name}}

  {{ember-th/sort-indicator columnMeta=columnMeta}}

  {{ember-th/resize-handle columnMeta=columnMeta}}
{{/ember-th}}
```

* [BUGFIX] Empty values are sorted properly

* [CHORE] Update to node 8

* [CHORE] Unpin jsdom after dropping support for Node 6

* [BUGFIX] Ensure dynamicAlias works on latest Ember (Addepar#679)

* [BUGFIX] Ensure dynamicAlias works on latest Ember

There were some subtle changes on the latest Ember that made aliases
and properties that include . in their name to stop working. Instead
of creating dynamic aliases, we now just access the properties directly
on _context, which should fix the issue.

* fix release tests

* Start converting to classic classes (Addepar#677)

* Start converting to classic classes

* Finish up conversion and convert TBody

* Convert row-wrapper and simple-checkbox to classic classes (Addepar#681)

There is one issue, where we are setting properties in a computed, which did not seem to be flagged be ESLint before, but is flagged when we use a class computed. I added `// eslint-disable-next-line ember/no-side-effects, ember-best-practices/no-side-effect-cp` to get around the issue for now.

@pzuraq do we need to do something else to fix this or is disabling ESLint there okay?

* thead, th, and tr to classic components (Addepar#680)

* thead, th, and tr to classic components

* Fix some tests

* Add missing attributeBindings

* Use defaultTo for sortFunction and compareFunction

* fix defaultTo

* Convert collapse-tree, column-tree, and ember-td to classic (Addepar#682)

* Convert collapse-tree and ember-td to classic

* Convert column-tree to classic

* Move ember-decorators to devDeps (Addepar#685)

* Move ember-decorators to devDeps

* Store functions before calling removeObserver on them

* [BUG] Setting the column width to its current value works

It used to return `undefined` which would lead the `delta` to be `NaN`,
causing an infinite loop when resizing a leaf column.

* [BUG] Fix memory leaks related to vertical-collection

* Change pinned dependency specifier for vertical-collection

Change from `user/repo#sha` to `https://github.com/user/repo.git#sha` form.
Yarn has a bug related to installing changed SHA versions when they are pinned in `user/repo` form,
that could cause consumers of this addon (or developers of this addon) to fail to get updated
dependency code via `yarn install`, see: yarnpkg/yarn#4722 (comment)

* Ensure that table column widths are recomputed when columns change

This fixes an issue where removing a column can leave a blank space in the
table because it doesn't recompute column widths. The table's `ResizeSensor`
is primarily responsible for noticing resizes and updating widths, but when a
column is removed, although the inner `table` element width changes, the
container `.ember-table` element does not change its width, and thus the
`ResizeSensor` never notices, and the column widths are not recomputed.

This modifies the `ember-thead` observer to have it call `fillupHandler` when
column count changes.

It also changes the observer in `ember-thead` to watch `columns.[]` instead
of just `columns`, because in the latter case, the `fillupHandler` will not
be called if a column was removed via mutation (e.g. `popObject`).

Adds tests for removal via both ways (mutation and `this.set('columns',
newColumns)`). Also adds tests that adding columns also causes column widths
to be computed.

Co-authored-by: Jonathan Jackson

* Skip _onColumnsChange when there are no remaining columns

* Convert ember-thead test to a form that works with older Ember

This should make it so that the tests pass on Ember 1.12 and 1.13.

Use a special `requestAnimationFrame` waiter that waits 2 RAF turns to
ensure that the table's columns are done being laid out when the test
starts measuring their dimensions.

* Fix arguments for test helper functions

* Use back-compatible template for ember 1.12 and 1.13

* Add Ember-1.12 compatibility for `this.set` and `this.get` in test

* Add comment about the `rafFinished` helper

* [CHORE] ember-beta is supported

It was deactivated with Addepar#661

* [PERF] Set default bufferSize to 1

By default, ember-table allocates a buffer of 20 rows
before and after the visible ones.

This default value forces a lot of computation in the case of tables with many columns and complex cells,
from syncinc more data (from rows to cells for example) and triggering more observers
(based on the number of computed properties defines per cell for example).
VC also does not allocate the part of the buffer that should be above the visible first row,
as there is none when loading the table. This means that the initial scroll will also
lead to the creation of 20 rows in the DOM (and the underlying computation to render the content).

From a pure UI/UX point of view, we don't need more than 1 row on each side of the table,
and it's already the default for `vertical-collection`.

* [TEST] Add rowCount to page object for thead, tbody and tfoot

In some tests, it is interesting to see if a row is properly inserted or removed.
Because `vertical-collection` tries to not render all the rows, we can't simply
count the number of `tr`. Instead we use the `data-test-row-count` attribute
to keep track of the number of available rows in a table.

* ember-decorators/argument is needed to generate the documentation

Custom cell and header pages rely on it

* Enable strict BEM class name format

* [FEATURE] Text alignment can be defined per column

The `textAlign` property on a column definition accepts `left`, `center` and `right`.
When the property is set, a class is added to the cell (`ember-table__text-align-left`,
`ember-table__text-align-center`, `ember-table__text-align-right`).

* CHORE: Change jsconfig settings so that tests are included

Both "include" and "exclude" are unnecessary together, so modify
"exclude" to exclude all relevant directories.

This makes it so that VSCode won't complain about decorator usage
in dummy/* JS files, among other things.

* DOCS: Fix rendering of addon docs pages

 * Upgrade ember-cli-addon-docs and related devDeps
 * Remove @ember-decorators/argument devDep

Convert custom-cell and custom-header docs components to classic.
Fixes issue where the table-customization addon docs page would throw
errors at runtime related to the `@argument` decorator.

 * Restructure docs index and application templates

Add a `nav.item` for 'docs.index', otherwise ember-cli-addon-docs
hits an assertion and throws an error in local development when it tries
and fails to associate the currentURL ('/docs') with a known docs route.

Remove some private-api `style=` component props and errant spacer `li`s in
the nav. In newer ember-cli-addon-docs its styles are namespaced (under
`docs-X` classes), and the styling of the nav no longer looked correct.

 * Upgrade angle-bracket polyfill

Upgrade the polyfill to allow using `<EmberTh::SortIndicator>`
nested angle-bracket invocation style on the table-customization docs page.
Prior to this upgrade, the page would throw errors when visited.

* DOCS: Avoid passing incorrect/unneeded args to faker.* methods

faker.company.companyName for its first arg expects either a format string
or an integer in the range [0,2]:
https://github.com/Marak/faker.js/blob/3a4bb358614c1e1f5d73f4df45c13a1a7aa013d7/lib/company.js#L26-L39

Passing a value greater than 2 results in a returned value of `string
parameter is required!` instead of a faked name. This wasn't obvious because
the number of generated rows is dynamic (via `getRandomInt`), so it only
shows up if the # of generated rows is enough to trigger the error, and then
you have to scroll to the bottom of the table to notice it.

Also remove the argument passed to `department` because it doesn't accept an argument:
https://github.com/Marak/faker.js/blob/3a4bb358614c1e1f5d73f4df45c13a1a7aa013d7/lib/commerce.js#L22-L24

Ditto for `productName`:
https://github.com/Marak/faker.js/blob/3a4bb358614c1e1f5d73f4df45c13a1a7aa013d7/lib/commerce.js#L31-L35

* DOCS: Improve table-customization docs pages

  * Move `getRandomInt` helper to utils/generators
  * Use more explanatory data for table-customization sorting

Previously, the data displayed in the table didn't have any difference,
row-to-row, so it wasn't obvious that clicking the column headers actually
did change the sorting.

This copies over the sortable columns/rows data from the sorting docs example.

  * Interactive sort/resize indicators on customization page

On the table customization page, add checkboxes to turn on/off the
sort/resize indicators in the header columns, so that docs readers
can better understand how they are used.

  * table-customization: More obvious cell/column customizations

Use a SCSS loop to define the `.text-<color>` and `.bg-<color>` style
rules.

Remove the "text-" prefix from the color names used in code, move this
into the template.

Make custom cells use a `text-<color>` class.
Make custom header cells use a `bg-<color>` class, for variety.

Separate some of the reused controller properties so that it's clearer
which property is used for which example.

* DOCS: Add basic acceptance test for docs/ routes

* DOCS: Test that subcolumns docs render cells

Fix rendering of generated dummy rows. Cells with valuePaths longer than
a single character were being skipped over in the dummy row's `unknownProperty`
hook.
Fix by removing the length check in `unknownProperty` and explicitly adding
the needed properties to the class definition so that the only accesses
that hit `unknownProperty` should be `valuePath`s for rendering.

* [DOCS] Fix autogenerated API docs for components

Change from using the addon-docs esdoc to yuidoc plugin.
esdoc is meant for "native classes"-style exports, and it was silently
ignoring the documentation for the components, resulting in no output.

Add some additional `@argument <argName>` annotations so that yuidoc
will properly pick up argument names.

yuidoc's syntax does allow for `@optional`, `@required` and `@default`
annotations for arguments, but when I added them these were either not being
parsed correctly or (my assumption) the addon-docs yuidoc plugin wasn't using
that extra parsed data, but either way the addition of those annotations
wasn't affecting the generated API docs so instead I've modified the `@type`
annotations to indicate optional args, with default values in parens when
appropriate.

* [DOCS] Add "Testing" section

Add `addon-test-support/index.js` to export the TablePage from a central
location.

Upgrade @addepar/eslint-config to ^4.0.2 so that the `index.js` is linted
correctly.

Add a "Testing" section to the addon docs that describes basic usage of the
TablePage.

* DOCS: Better spacing for Resize/Reorder columns demo

* DOCS: Remove unused args to docs-hero

* [DOCS] Remove unused `.red-cell` css style

The "red-cell" class usage was removed here in Addepar@cf37ef1#diff-ab03e59e6d25ee3864870f2d10de6a7fL8
but the selector wasn't removed at the same time.

* [CHORE] v2.0.0-beta.8

* [CHORE] Add 3.4, 3.8 LTS to ember-try

Fixes Addepar#719

* [CHORE] Update .travis.yml

Remove some deprecated config settings for Travis.
Update settings to more closely align with the default addon output,
see https://github.com/ember-cli/ember-addon-output/blob/master/.travis.yml

* [CHORE] More update to travis.yml

* [CHORE] Remove unused ember-cli-addon-docs configs

addon docs no longer uses configuration settings in ember-cli-build.js,
it has its own separate config file in config/addon-docs.js instead.

* Remove @function annotation from private mergeSort function

* [DOCS] Unconditionally enable faker for dummy app

* [DOCS] Show selected-row checkmark

Fixes Addepar#593

The underlying styles that we import from '@addepar/style-toolbox/onyx/index'
should be modified so that they don't hardcode an absolute URL for the background-image
checkmark svg, but in lieu of that larger-scope fix, this PR copies the checkmark.svg
asset and adds a singular style override to display it.

* [DOCS] Add 2-state sorting example

Fixes Addepar#721

Also add checkbox to configure `sortEmptyLast` on that demo.
Add test for the 2-state sorting.

Use `label` instead of `span` on all the places `demo-options` are shown.

* Bump up the size of demo data for selection

* Use objectAt to fetch rowValues (cause meta alloc)

Although the `selection` set contains raw values only, some other code
(like the summing of selected counts for group selection state in
`collapse-tree.js`) expect that all items in the `selection` set have a
meta allocated.

The non-meta-allocated rows were added where the bare `children`
property of a rowValue was being iterated. Instead with this change the
`tree` is referenced for pulling out the children, meaning the meta
cache system is exercised and metas allocated for any selected row.

* [DOCS] Fix up wording and typo in docs

* Update tests/dummy/app/pods/docs/guides/body/row-selection/template.md

Co-Authored-By: Matthew Beale <matt.beale@addepar.com>

* fix eslint

* [DOCS] Change styling for row-selection demo options

Change the styling so the interactive row-selection demo
moves the radio button labels to the right of the button, and
add back in some alignment and spacing between the labels.
The docs were using a tailwind CSS class "pr-4" but tailwind is no longer
provided via addon-docs, so those styles were not being applied.

* Test that unrendered (occluded) row selection can be managed

This is a failing test for Addepar#726.

Also fixes a typo in an unrelated test assertion message.

* v2.0.0-beta.9

* [DOCS] Add interactive row-selection demo

Change the row-selection docs example to display the current value of
`selection` to help clarify that it can be an array or single item,
and it doesn't include a group's children when that group is selected.

* Add failing test for Addepar#735

* Potential fix for Addepar#735

* v2.0.0

* [DOCS] Miscellaneous small fixes

Remove undefined `py-2` and `pr-4` CSS classes (vestiges from when tailwind
was included in the build from addon-docs).
Consolidate example options to use `demo-options` class wherever possible.
Remove unneeded `demo-option` class.

Fix the 'color' property on the columns in the custom-header example so that
the correct bg-color CSS classes are applied.

Use a separate selection property `demoSelection` for the last demo on the
'row selection' page. When the `selection` property was shared amongst all
the demos on the page, it was possible to select a row in one of the demos
that didn't exist in the later ones, and would cause an error.

Fix typos.

* [DOCS] Update readme to add link to online docs

* move addon to dependencies

Fix 741.
Required so consuming apps can import the helper.

* enable fillMode to support an nth-column option

* make all single column fill modes reuse the same resize implementation

* [DOCS] Update docs for `fillColumnIndex`

* [DOCS] Test clicking on snippets links on docs pages

* [DOCS] Fix demo snippets on Sorting, Dynamic Fixed Columns docs

* Add failing tests for Addepar#747

Adds several failing tests for Addepar#747.

* Add `setupAllRowMeta`, `mapSelectionToMeta` to CollapseTree

Add a function `setupAllRowMeta` that walks all the table's rows and
sets up a row meta for each one. This is called lazily in the case where
the table has a `selection` that includes some rows that don't yet have
rowMetas. This can happen if the selection includes rows that haven't yet
rendered. The rowMeta for a row is lazily created when it is rendered,
so rows that haven't yet rendered won't have a row meta. This usually is
not a problem because in normal user interaction with a table, the user will
only interact with rows that are rendered. However, it's possible to
programmatically set a selection, and in this case a row in the selection
may not yet have been rendered.

It's also possible for a `selection` to contain a row without a corresponding
rowMeta if that row is not part of the table's rows. This is an invalid selection,
and this commit adds an Ember.warning for times when we detect such a case.

Fixes Addepar#747

Modifies one of the 747 test cases to assert that the warning is triggered
when ET encounters a selection with a row that is not part of the table.

* Add debug-handlers polyfill to capture warning in older Ember

Add `test` condition to warn call in collapse-tree

* assert row is selected in test

* only register the warn handler 1x during testing

* Do not JSON.stringify missing row

* [TESTS] footer page object extends body page object

The footer component extends the body component. This makes the
exported Test Page object able to operate on `table.footer` the same
way it does on `table.body`.

* [DOCS] Add Changelog.md (Addepar#750)

auto-generated via `npx auto-changelog`

* [CHORE] Use release-it for releases (Addepar#751)

* Update readme and release-it config

* Release 2.1.0

* Added example of using CSS Flex with ember-table (Addepar#752)

Per discussion on #topic-tables I've added my Twiddles for both a pure CSS version and a Bootstrap version.

* [TESTS] Allow ember-beta scenario to fail at CI (Addepar#755)

Relates to Addepar#754

* Add npm version badge

* Update version badge in README

* [FEAT] Enforce maximum height (by percentage) for sticky footers and he… (Addepar#753)

When the footer or header will take up more than 50% of the height
of the table, the sticky polyfill will now position some of the
cells so that they must be scrolled to in order to be seen.
Otherwise, all of the body cells are covered by the sticky header/footer
cells.

* Release 2.1.1

* [CHORE] use vertical-collection @ ^1.0.0-beta.14 (Addepar#756)

The latest beta release. Does not include any new functionality.

The comparison between the previous pinned sha and this version:

html-next/vertical-collection@ca8cab8...v1.0.0-beta.14

* Release 2.1.2

* bugfix: allow zero for fillColumnIndex

fix: Addepar#767

* Bump deps. Pin addon-docs to avoid regression

The regression is tracked upstream:
ember-learn/ember-cli-addon-docs#402 (comment)
if a fix lands the strict version dependency on ember-cli-addon-docs can
be loosened.

* Release 2.1.3

* Update ember-classy-page-object to latest ^0.6.0 (Addepar#772)

* Update ember-classy-page-object to latest ^0.6.0

* Bump to ^0.6.1

* Release 2.1.4

* Fix release badge (Addepar#774)

Use the "npm version" badge since the "release" badge only shows github releases (not tags), and we don't always create an official github release when we tag a new version.

* Fix CI (Addepar#773)

* remove legacy ember-decorators

* use ember-qunit instead of ember-cli-qunit

* Remove ember-legacy-class-shim

docs: https://github.com/pzuraq/ember-legacy-class-shim

We no longer have ES6 classes inside this addon, so we don't need the shim

* Skip column reordering tests on ember release, beta, canary

See: Addepar#775

* Add note that async observers are needed for Ember 3.13+

* Update README to point out Ember 3.13 regressions

* Use async observer when target app is Ember 3.13+ (Addepar#777)

* Add `observer` util to opt in to async in 3.13+

* Remove code that skips column-reordering tests for 3.13+

* Use ember 3.12 in package.json

* Fix lint

* change eslint no-restricted-imports messages, pr feedback

* Rename imported ember observer functions, pr feedback

* Fix argument order for addObserver/removeObserver

* Use `settled` to fix collapse-tree tests

The use of `await settled()` seems to be required to properly wait for the
now-async observers to finish notifying of property changes to the collapse tree.

Also:
  * Fix propogate typo
  * Replace some hardcoded for loop lengths in tests with eg `expectedValue.length`

* Remove unused `_notifyCollection` property (Addepar#779)

This was introduced in Addepar#529 but never used either in that change
or since, so it seems like it can be safely removed.

* [DOCS] Add browser compatibility section (Addepar#769)

* Fix column-reordering with Ember 3.13+ (Addepar#778)

* Add parameterizedComponentModule helper, test w/ and w/out ember arrays

* Notify using the keyName rather than the full path

Fixes Addepar#776

* Run resize tests w/ and w/o emberA column/rows

* [FEAT] Add direction to reorder indicator (Addepar#766)

* [DOCS] Remove Ember 3.13 section from readme (Addepar#781)

The Ember 3.13 bugs are now all fixed, so remove this section.

Also: run the markdown formatter over the README to clean up.

* Bump ember-test-selectors (Addepar#782)

0.3.9 of Ember test selectors is very old and does not strip data-test-
when using Babel 7. Bump to 2.1.0.

See: https://github.com/simplabs/ember-test-selectors/releases

* Release v2.2.0

* [DOCS] Add new reorder-directional classes (Addepar#783)

* Use resolutions to force prettier to 1.18.2

* bugfix: first multiselection has no _lastSelectedIndex

* Release 2.2.1

* Avoid "update prop already used in computation"

Ember internals use an observer for attribute bindings. In this case the
observer timing causes a computation based on a value which is then
updated by a side-effect-having CP.

Here avoid the observer interaction by instead setting the count itself
as part of the computation side effects.

See:

* Addepar#795
* emberjs/ember.js#18613

Fixes Addepar#795

* Ignore engine incompat

Avoids the issue with Node 8 caused by
npm/node-semver@d61f828#diff-b9cfc7f2cdf78a7f4b91a753d10865a2R35

* Release 2.2.2

* Add testing for rowCount for tree tables

* Update row count when tree collapses

The row count did not update when the collapse of a tree was toggled.
Here ensure that happens with an observer in dev mode.

Fixes Addepar#804

* Release 2.2.3

* restore ember th behavior

* Quickfix: column re-ordering

Co-authored-by: Cy Klassen <cytklassen@gmail.com>
Co-authored-by: Cyril Fluck <github@fluck.fr>
Co-authored-by: Josemar Luedke <230476+josemarluedke@users.noreply.github.com>
Co-authored-by: Cyril Fluck <cyril.fluck@addepar.com>
Co-authored-by: Nolan Evans <22493+nolman@users.noreply.github.com>
Co-authored-by: Matthew Beale <matt.beale@madhatted.com>
Co-authored-by: Chris Garrett <me@pzuraq.com>
Co-authored-by: Robert Wagner <rwwagner90@gmail.com>
Co-authored-by: Jerry Nummi <nummi@users.noreply.github.com>
Co-authored-by: Cory Forsyth <cory.forsyth@addepar.com>
Co-authored-by: Jonathan Jackson <jonathan.jackson@addepar.com>
Co-authored-by: Cory Forsyth <cory.forsyth@gmail.com>
Co-authored-by: Matthew Beale <matt.beale@addepar.com>
Co-authored-by: Eli Flanagan <eflanagan@innovu.com>
Co-authored-by: Chris Bonser <bonser.chris@gmail.com>
Co-authored-by: Chris Bonser <chris.bonser@gmail.com>
Co-authored-by: octabode <mark@climate.com>
Co-authored-by: Michal Bryxí <michal.bryxi@crowdstrike.com>
Co-authored-by: Camille TJHOA <camille.tjhoa@outlook.com>
Co-authored-by: Fry Kten <32638334+frykten@users.noreply.github.com>
Co-authored-by: frykten <fry.kten.art@gmail.com>
Co-authored-by: Jiaying <jiaying.xu@addepar.com>
sualko added a commit to jsxc/jsxc that referenced this issue Jul 5, 2021
@Nico-Guyon
Copy link

Any news on this issue ?
I feel we all lost quite a bit of time with this since it was open several years ago.

It would be so great if it could be fixed !

@bsmith-self
Copy link

Not holding much hope for a resolution at this point, but we're getting bitten by this too. In our case we're using a git+ssh://git@...-style URL, pointed at gitlab. Based on what I'm seeing elsewhere in the thread maybe we'll try an https URL to see if that helps

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests