feat(tangle-dapp): Implement account page structure & Vesting

Summary of changes
Provide a detailed description of proposed changes.

Added ability to claim vested tokens for both EVM and Substrate accounts.
Created re-usable hooks to allow for agnostic account transactions (ie. transactions for both EVM and Substrate accounts).
Created powerful & useful re-usable hooks such as useAccountBalances, and usePolkadotApi to enable frictionless data querying from the blockchain. They have been appropriately documented.
Transaction modal's functionality was implemented.
Fixed caching bug related to getPolkadotApiPromise function which was causing 429 Too Many Requests bans.
Added Vesting precompile ABI to constants, and also added typings to ABI constants.
Added some icons to libs/webb-ui-components.

Hooks

useAgnosticTx: A method to simplify creating EVM & Substrate transactions. Fully typed. It also abstracts away error handling, and notifications. Basically the way it works is that you provide the EVM precompile & what function to call, and then the equivalent Substrate transaction factory (a function that returns a transaction), then it does the rest for you.
useVesting: Provides vesting-related functionality, and the account-agnostic (ie. automatic for both EVM and Substrate) performVestTx function.
useSubstrateTx: Uses higher-order functions (passing in the function that returns a tx) to simplify creating Substrate transactions. At the end is an example usage of this hook.
usePolkadotApi: Similarly, uses higher-order functions to simplify both interacting and querying data from Polkadot Promise API. It automatically handles caching because it uses useSWR under the hood. This allows us to maintain fine-grained control of efficiency even in the Promise-based API.
usePolkadotApiRx: rxjs equivalent of usePolkadotApi. Use this for real-time data and observables.
usePromise: Created this one to simplify promise handling in React. It allows you to avoid repeating large useEffects for querying data.
useFormattedBalance: The main function to format token balance, formatTokenBalance, is async because it needs to obtain a Polkadot Promise API instance to get the chain decimals. The purpose of this hook is to abstract that repeated logic away. Perhaps we can change this if we know for sure that the chain will always have 18 decimals.
usePolkadotLedgerSWR & usePolkadotLedgerRx: Similar to usePolkadotApi & usePolkadotApiRx, but provides direct access to the ledger instead.

Usage example of the `useAgnosticTx` hook

Usage example of the `usePolkadotApi` hook

Usage example of the `usePolkadotApiRx` hook

Usage example of the `useSubstrateTx` hook

Usage example of the `useVesting` hook

Additional notes

The balances table is still being worked on, I am tracking that on another issue (#1967).
The recent transactions table requires GraphQL, that will be tracked in a separate issue as well (#1996).
Some minor design changes will also be addressed in the other issue (such as Nominate action having a different icon than the design).
The Tangle logo was updated after the video recordings were posted to match the updated one in Figma.
The vesting functionality cannot be tested in the testnet as of now, as the vesting precompile (which is required to run the vest function) was not added until after the testnet was last deployed.

Balance definitions

Transferable = Amount free of any limitations
Locked = Locked in staking + amount still vesting + anything else not completely accessible / under conditions
Total balance = transferable + locked
Claimable vesting balance (on Vest button tool tip) = Amount that has vested and is ready to be claimed via the Vest button

Proposed area of change
Put an x in the boxes that apply.

[ ] apps/bridge-dapp
[ ] apps/hubble-stats
[ ] apps/stats-dapp
[x] apps/tangle-dapp
[ ] apps/testnet-leaderboard
[ ] apps/faucet
[ ] apps/zk-explorer
[x] libs/webb-ui-components

Reference issue to close (if applicable)
Specify any issues that can be closed from these changes (e.g. Closes #233).

Closes #1967

Screen Recording
Substrate accounts claiming vesting tokens
https://github.com/webb-tools/webb-dapp/assets/101931215/f0111961-45d2-428b-afea-ae054eea05b0
EVM accounts claiming vesting tokens
https://github.com/webb-tools/webb-dapp/assets/101931215/c2006981-380c-432a-9afd-84f2817e4a46

Code Checklist
Please be sure to add .stories documentation if any additions are made to libs/webb-ui-components.

[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have added necessary documentation (if appropriate)

Note that I plan to demo the entire process (Airdrop claim -> Evm vesting) in a separate issue/PR, since I am facing unexpected things regarding Airdrop claim (receiving tokens immediately instead of vesting).

Additional feedback from Drew:

[ ] Improve naming of usePolkadotLedgerSWR & usePolkadotLedgerRx.
[ ] Avoid using Polkadot prefix elsewhere unless appropriate.
[ ] Elaborate on SWR.

Any chance we are able to get a deployment preview on Netlify easily? I am unable to get the videos to play somehow.

Design changes from @monaiuu

[ ] Fix transfer modal being locked into the account summary box

Merge conflicts here @yurixander and then prob good to go

More merge conflicts here btw @yurixander

Requesting another round of review since there was extensive merge conflict resolution.

Great work @yurixander !


Setting type+rename field with Raw doesnt work on 1.5.7

Strangly enought... Renaming fields (using AS) doesnt work when using medoo::raw() in my query. I may forget something but i'm pretty sure about this !
example (work : all fields are in integer):
[
	"p.id(prov_id)[Int]",
	"tc[Int]"            => Medoo::raw('SUM(<tc>)'),
	"international[Int]" => Medoo::raw('SUM(<international>)'),
	"secondary[Int]"     => Medoo::raw('SUM(<secondary>)'),
	"postsecondary[Int]" => Medoo::raw('SUM(<postsecondary>)'),
]

But this doesnt (tc/international/secondary/postsecondary remain string AND original name) :
[
	"p.id(prov_id)[Int]",
	"tc(gr_tc)[Int]"            => Medoo::raw('SUM(<tc>)'),
	"international(gr_int)[Int]" => Medoo::raw('SUM(<international>)'),
	"secondary(gr_se)[Int]"     => Medoo::raw('SUM(<secondary>)'),
	"postsecondary(gr_ps)[Int]" => Medoo::raw('SUM(<postsecondary>)'),
]

It seems to not returning the proper type but always returning as string when using medoo:raw(). For now i must do a proper formatting with an additional forearch loop... annoying !

When you are using SUM(), AVG() or other aggregate functions with Medoo::raw object, there no need to using alias, because the tc, international, secondary and postsecondary will no longer present as table column.
You can just simply assign it as this:
[
	"p.id(prov_id)[Int]",
	"gr_tc [Int]"            => Medoo::raw('SUM(<tc>)'),
	"gr_int [Int]" => Medoo::raw('SUM(<international>)'),
	"gr_se [Int]"     => Medoo::raw('SUM(<secondary>)'),
	"gr_ps [Int]" => Medoo::raw('SUM(<postsecondary>)'),
]

That makes sense... thx a lot, workin' perfectly !


Make example change to index heading text.

<!-- Thanks for submitting a pull request! Please provide enough information so that others can review your pull request. -->

This is a simple text change to test the Netify build and deployment.

What kind of change does this PR introduce?
The text content of index heading is altered.

Does this PR introduce a breaking change?
No.

What needs to be documented once your changes are merged?
None.

👷 Deploy Preview for effortless-marzipan-fbb534 processing.

Name
Link

🔨 Latest commit
6f21eecc48a4832fea445613890508d55d98d4ce

🔍 Latest deploy log
https://app.netlify.com/sites/effortless-marzipan-fbb534/deploys/63d931226b55f3000a667488

All looks to build and deploy OK but no changes seen in preview. Approving.

Approving as sole dev.


PublicClientApplication type mismatches

Core Library
MSAL.js v2 (@azure/msal-browser)
Core Library Version
2.37.0
Wrapper Library
MSAL Angular (@azure/msal-angular)
Wrapper Library Version
2.5.7
Public or Confidential Client?
Public
Description
After upgrading to the above npm version I'm now getting errors about incompatible PublicClientApplication types.
Error Message
Error: src/app/provide-azure.ts:36:55 - error TS2322: Type 'import("C:/Users/grosch/source/repos/newlamp/web/node_modules/@azure/msal-browser/dist/app/PublicCli
entApplication").PublicClientApplication' is not assignable to type 'import("C:/Users/grosch/source/repos/newlamp/web/node_modules/@microsoft/mgt-msal2-provider
/node_modules/@azure/msal-browser/dist/app/PublicClientApplication").PublicClientApplication'.
Types have separate declarations of a private property 'activeSilentTokenRequests'.
36         Providers.globalProvider = new Msal2Provider({publicClientApplication})
~~~~~~~~~~~~~~~~~~~~~~~
Error: src/app/provide-azure.ts:55:55 - error TS2322: Type 'import("C:/Users/grosch/source/repos/newlamp/web/node_modules/@azure/msal-browser/dist/app/PublicCli
entApplication").PublicClientApplication' is not assignable to type 'import("C:/Users/grosch/source/repos/newlamp/web/node_modules/@microsoft/mgt-msal2-provider
/node_modules/@azure/msal-browser/dist/app/PublicClientApplication").PublicClientApplication'.
55         Providers.globalProvider = new Msal2Provider({publicClientApplication})
~~~~~~~~~~~~~~~~~~~~~~~
Msal Logs
No response
MSAL Configuration
{
    auth: {
        clientId: environment.azure.clientId,
        authority: 'https://login.microsoftonline.com/...',
        redirectUri: window.location.origin
    },
    cache: {
        cacheLocation: BrowserCacheLocation.LocalStorage,
        storeAuthStateInCookie: false
    }
}

Relevant Code Snippets
const publicClientApplication = new PublicClientApplication({
    auth: {
        clientId: environment.azure.clientId,
        authority: 'https://login.microsoftonline.com/...',
        redirectUri: window.location.origin
    },
    cache: {
        cacheLocation: BrowserCacheLocation.LocalStorage,
        storeAuthStateInCookie: false
    }
})

export const provideAzure = () => makeEnvironmentProviders([{
    provide: APP_INITIALIZER,
    useFactory: (msalService: MsalService) => async () => {
        Providers.globalProvider = new Msal2Provider({publicClientApplication})

Reproduction Steps
Just trying to compile the code.
Expected Behavior
Not a compiler error.
Identity Provider
Azure AD / MSA
Browsers Affected (Select all that apply)
Chrome
Regression
Not sure which version it was on previously.
Source
External (Customer)

Hi @grosch-intl.
This looks like a version mismatch issue. Once you bump the direct @azure/msal-browser dependency it might clash with the old version of @microsoft/mgt-msal2-provider/node_modules/@azure/msal-browser unless you upgrade @microsoft/mgt-msal2-provider. That's the reason why installing dependencies from scratch fixed the issue for you.
You may want to override @azure/msal-browser dependency version for @microsoft/mgt-msal2-provider to make sure it always matches the direct dependency version. Here is an example:
"dependencies": {
    "@azure/msal-browser": "2.37.0",
    "@microsoft/mgt-msal2-provider": "awesome-version"
}
"overrides": {
    "@microsoft/mgt-msal2-provider": {
        "@azure/msal-browser": "$@azure/msal-browser"
    }
}

Hi @konstantin-msft
That doesn't seems to be making a difference for me.  Slightly different issue, but same line of code.  I upgraded @azure/msal-browser and @azure/msal-angular to the 3.0.0-alpha.0 version, and now, after a full reinstall, I get this:

Type 'PublicClientApplication' is missing the following properties from type 'PublicClientApplication': ac
tiveSilentTokenRequests, trackPageVisibility, acquireTokenSilentAsync, browserCrypto, and 31 more.

May I ask you what package manager are you using? We have discovered an issue in 3.0.0-alpha.0 with yarn that prevents it from installing bundled @azure/msal-common package. If that is the case, I would suggest downgrading to the LTS version or switching to npm unless we rollout a fix.
Also, did you check that node_modules/@azure/msal-browser and @microsoft/mgt-msal2-provider/node_modules/@azure/msal-browser versions match?

I was using yarn, yes.  I hope they push a fix for that soon.  I switched to npm temporarily.
Looks like they don't match again:
$ grep version<EMAIL_ADDRESS>\<EMAIL_ADDRESS>@azure/msal-browser/package.json:  "version": "3.0.0-alpha.0",
<EMAIL_ADDRESS> "version": "2.37.0",

In my package.json I have this in dependencies:
    "@azure/msal-angular": "3.0.0-alpha.0",
    "@azure/msal-browser": "3.0.0-alpha.0",
    "@microsoft/mgt": "3.0.0-preview.1",
    "@microsoft/mgt-mock-provider": "3.0.0-preview.1",

and I added the overrides:
  "overrides": {
    "@microsoft/mgt-msal2-provider": {
      "@azure/msal-browser": "$@azure/msal-browser"
    }
  }

What version of npm are you using? It works for me with npm 9.6.6.
Before switching to npm and alpha/preview packages did you try using yarn resolutions?

I just upgraded to 9.6.6.  I can't use the yarn resolutions because the azure package won't install via yarn yet.  I explicitly added  "@microsoft/mgt-msal2-provider": "^3.0.0-preview.1" to my package.json as well.  Now i get no errors, but network calls don't happen.  If I look in the package-lock.json I see this, which seems wrong:
    "node_modules/@microsoft/mgt-teams-msal2-provider/node_modules/@azure/msal-browser": {
      "version": "2.37.0",
      "resolved"<EMAIL_ADDRESS>      "integrity": "sha512-YNGD/W/tw/5wDWlXOfmrVILaxVsorVLxYU2ovmL1PDvxkdudbQRyGk/76l4emqgDAl/kPQeqyivxjOU6w1YfvQ==",
      "dependencies": {
        "@azure/msal-common": "13.0.0"
      },
      "engines": {
        "node": ">=0.8.0"
      }
    },

Any thoughts, @konstantin-msft ?  I'm assuming that because of the mismatch the MSAL interceptor is grabbing and rejecting the network call.

@grosch-intl Unfortunately I can't reproduce this on my machine.
Thinking of your use case makes me realize this approach is error-prone. By enforcing @microsoft/mgt-teams-msal2-provider/node_modules/@azure/msal-browser dependency version we can never guarantee its compatibility with the parent package due to the potential breaking changes. I would recommend either pinning @microsoft/mgt-teams-msal2-provider and @azure/msal-browser versions in a way that direct and inderect @azure/msal-browser package versions match OR splitting their usage into different namespaces.

I am facing the same problem even now using yarn
➜ yarn info @microsoft/mgt-msal2-provider
└─ @microsoft/mgt-msal2-provider@npm:4.1.0
   ├─ Version: 4.1.0
   │
   └─ Dependencies
      ├─ @azure/msal-browser@npm:^2.22.0 → npm:2.38.3
      ├─ @microsoft/mgt-element@npm:4.1.0 → npm:4.1.0
      └─ @microsoft/microsoft-graph-client@npm:3.0.2 → npm:3.0.2 [9bb35]

➜ yarn info @azure/msal-browser
└─ @azure/msal-browser@npm:3.11.0
   ├─ Version: 3.11.0
   │
   └─ Dependencies
      └─ @azure/msal-common@npm:14.8.0 → npm:14.8.0

Which results in 2 different msal-browser versions and causes the same TS2740: Type PublicClientApplication is missing the following properties from type PublicClientApplication: activeSilentTokenRequests, trackPageVisibility, acquireTokenSilentAsync, browserCrypto, and 31 more.
My package.json:
"dependencies": {
    "@azure/msal-browser": "^3.11.0",
    "@azure/msal-react": "^2.0.13",
    "@microsoft/mgt-element": "^4.1.0",
    "@microsoft/mgt-msal2-provider": "^4.1.0",
    "@microsoft/mgt-react": "^4.1.0",
    "@microsoft/microsoft-graph-client": "^3.0.7",

relevant code:
const azureConfig = {
  auth: {
    clientId: 'b31fd6f9-1d56-46cb-bc82-da5a89c49cf4',
    authority: 'https://login.microsoftonline.com/8e594b94-e61e-4d57-83bc-8b84a5e69d89/',
    redirectUri: window.location.origin,
  },
}

const pca = new PublicClientApplication(azureConfig)
await pca.initialize()
MGT_Providers.globalProvider = new MGT_Msal2Provider({ publicClientApplication: pca })
//                                                     ^^^^^^^^^^^^^^^^^^^^^^^^error

const root = ReactDOM.createRoot(document.getElementById('root') as HTMLElement)
root.render(
  <MsalProvider instance={pca}>
    <DevSupport ComponentPreviews={ComponentPreviews} useInitialHook={useInitial}>
      <App />
    </DevSupport>
  </MsalProvider>,
)

export { pca }

@IMBeniamin Yes, these libraries are incredibly painful to work with, and cause issues every time I want to upgrade something.  I tried going to version 4 like you and and it didn't work at all, so I went back, but essentially what you have to do is add this to your package.json:
  "resolutions": {
    "@azure/msal-angular": "^3.0.10",
    "@azure/msal-browser": "^3.7.0",
    "@microsoft/mgt-msal2-provider": "^3.1.3",
  },
  "overrides": {
    "@azure/msal-angular": "^3.0.10",
    "@azure/msal-browser": "^3.7.0",
    "@microsoft/mgt-msal2-provider": "^3.1.3",
  }

That way, whether someone uses yarn or npm, it'll force those versions in the other packages that try to reference them and you won't get the errors.

@IMBeniamin Yes, these libraries are incredibly painful to work with, and cause issues every time I want to upgrade something. I tried going to version 4 like you and and it didn't work at all, so I went back, but essentially what you have to do is add this to your package.json:
  "resolutions": {
    "@azure/msal-angular": "^3.0.10",
    "@azure/msal-browser": "^3.7.0",
    "@microsoft/mgt-msal2-provider": "^3.1.3",
  },
  "overrides": {
    "@azure/msal-angular": "^3.0.10",
    "@azure/msal-browser": "^3.7.0",
    "@microsoft/mgt-msal2-provider": "^3.1.3",
  }

That way, whether someone uses yarn or npm, it'll force those versions in the other packages that try to reference them and you won't get the errors.

Thank you for the tips, I managed to get it working by also overriding the mgt-element version, it indeed is finicky
Final overrides:
"resolutions": {
    "@azure/msal-react": "^2.0.14",
    "@azure/msal-browser": "^3.7.0",
    "@microsoft/mgt-msal2-provider": "^3.1.3",
    "@microsoft/mgt-element": "^4.2.1"
  },
  "overrides": {
    "@azure/msal-react": "^2.0.14",
    "@azure/msal-browser": "^3.7.0",
    "@microsoft/mgt-msal2-provider": "^3.1.3",
    "@microsoft/mgt-element": "^4.2.1"
  },


android-studio: Suggest android-clt

Now that ScoopInstaller/Main#1362 has been merged, we can suggest the new SDK instead.

@kidonng should Flutter also depend on CLT instead of the SDK?

@pratikpc I think so, you are welcome to try submit a PR


Update FreeRCT entry

Added relevant information (new links/platforms), updated outdated information
Removed myself from the developers (none of my PRs have been merged, as I never completed them)

Thank you for the update. Good to see that the project is continued again. The developer list is partly populated from Github API stats, you might be counted as contributor somehow. It might happen that you somehow get listed again as contributor. Maybe I can avoid it somehow.


Build for toolchains for CloudABI / WASI

https://cloudabi.org/ is a cap-safe "censored POSIX". (https://lwn.net/Articles/674770/ is a good secondary source.) It would be nice if Nixpkgs could cross compiler to this platform. While mainstream software has been ported to run on this platform (https://github.com/NuxiNL/cloudabi-ports), since it is a not standard Unixish, packages shouldn't be expected to work out of the box. Therefore Nixpkgs ought to support it as it does embedded platforms: building toolchains should work (though they aren't cached), but nothing else is supported.
I'm mainly interested in this so we can cross compile [a ported] Nix to that platform (https://github.com/NixOS/nix/issues/2759) so various experiments can take place.

Discussing whether to add support for another platform (especially a non-POSIX platform) is best done via an RFC. A quick look at the number of patches at https://github.com/NuxiNL/cloudabi-ports/tree/master/packages suggests that the overhead in supporting this platform would be considerable.

best done via an RFC

I'm hoping we end up, https://github.com/NixOS/rfcs/pull/31#issuecomment-466023755,

suggests that the overhead in supporting this platform would be considerable.

Yes it will be, which is why I suggest treat it like an embedded platform and make no effort to build packages on that platform, just tools for that platform.
Hopefully that RFC, in pivoting to define the criteria for supporting platforms, defines the "embedded platform level of support" precisely.

Yeah, it would be still nice to do this.


Use the 3d secure preference to make 3d secure optional

Fixes issue #256 .
I have tried to keep the code as similar as possible to the current master, however I am sure it could be refactored.

Thanks @damianlegawiec . Not sure if you receive a notification automatically, but I have incorporated the suggested change.

Thanks @mdavo6 👏


Roll Flutter Engine from 9c3f66d822e4 to 636c65e54e74 (2 revisions)

https://github.com/flutter/engine/compare/9c3f66d822e4...636c65e54e74
2024-08-30<EMAIL_ADDRESS>Roll Skia from 9ce15f8b2c7e to c23d19fdf117 (2 revisions) (flutter/engine#54889)
2024-08-30<EMAIL_ADDRESS>Roll Dart SDK from 139867e57ba9 to 88d311c9a531 (1 revision) (flutter/engine#54886)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC matanl@google.com,rmistry<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


Remove usage of sun.misc.Unsafe

com.codahale.metrics.Striped64 uses sun.misc.Unsafe. This is arguably a bad idea, for the following reasons:

sun.misc.Unsafe is undocumented, and therefore it should not be used.
Use of this class is not allowed in some sandboxes (e.g. GAE) which inhibits the use of depending classes (e.g. com.codahale.metrics.Timer) on such platforms.

Feel free to bring forward any additional/counter arguments regarding the use of the sun.misc.Unsafe class.
Some time ago, @bartprokop announced to be doing some work regarding this issue, but I thought I'd create an official issue for it anyway.

Java 7 will be used for a while, and you replace Unsafe in Striped64 and its internal class Cell with AtomicLongFieldUpdater and AtomicIntegerFieldUpdater, which are API classes in the Java standard library. You can also simply use AtomicLong and AtomicBoolean for Striped64's fields, but in that case LongAdder is also required to change.

The reason I'm concerned to fix the issue is, some projects using metrics would make an effort to switch logic by whether Unsafe is available or not, but updating the version of metrics would waste such an effort.

@ikedahi Fantastic suggestions, thank you! Working on it right now.

I've opened #875 which removes Unsafe in favor of AtomicLongFieldUpdater. Seems there is a ~14% performance hit.

+1


.joinRelation in wrong place in generated SQL

I'm having an issue with mixing join and joinRelation. The join is being promoted in front of the joinRelation in the resulting SQL, even though joinRelation is listed first in the query. This is a problem, because I am relying on a field from the joinRelation for the join.
Category
  .query()
  .from('categories as c')
  .distinct('c.id', 'c.name')
  .joinRelation('videos', { alias: 'v' })
  .join('video_schedules as vs', 'v.id', 'vs.video_id')
  .where({
    'v.active': 1,
    'vs.site_id': 1
  })
  .andWhere('vs.live', '<=', Math.floor(Date.now()/1000))
  .andWhere(function() {
    this.where('vs.expire', 0).orWhere('vs.expire', '>=', Math.floor(Date.now()/1000))
  })
  .debug()
  .then(console.log);

Here is my relation from the Category class:
  videos: {
      relation: Model.ManyToManyRelation,
      modelClass: __dirname + '/Video',
      join: {
          from: 'categories.id',
          through: {
              from: 'video_categories.category_id',
              to: 'video_categories.video_id',
              modelClass: __dirname + '/VideoCategory'
          },
          to: 'videos.id'
      }
  }

Here is the generated SQL:
select distinct `c`.`id`, `c`.`name`
from `categories` as `c`
  inner join `video_schedules` as `vs` on `v`.`id` = `vs`.`video_id`
  inner join `video_categories` as `video_categories_rel_videos` on `video_categories_rel_videos`.`category_id` = `categories`.`id`
  inner join `videos` as `v` on `video_categories_rel_videos`.`video_id` = `v`.`id`
where `v`.`active` = ?
  and `vs`.`site_id` = ?
  and `vs`.`live` <= ?
  and (`vs`.`expire` = ? or `vs`.`expire` >= ?)

And, finally, here is the error:
Unhandled rejection Error: ER_BAD_FIELD_ERROR: Unknown column 'v.id' in 'on clause'
    at Query.Sequence._packetToError

The .join portion comes before the .joinRelation portion in the generated SQL. Also, the joinRelation is using the full table name rather than the aliased name from the query:
inner join `video_categories` as `video_categories_rel_videos` on `video_categories_rel_videos`.`category_id` = `categories`.`id`

Notice:
= `categories`.`id`

even though I've specified .from('categories as c') in the query. Thanks!

There are two issues here:

The incorrect operation order bug
The "from alias" bug

I'll open a new issue for the alias bug.
The first issue is clearly a bug, and I'll fix it soon.


Add new lab meeting suggestions to agenda

Please review and let me know what you think!

I think the session I'm supposed to lead on is now in the strike period - if we could switch that one with a different date that would be fab!

I think the session I'm supposed to lead on is now in the strike period - if we could switch that one with a different date that would be fab!

@Patricia, the week after is no lab meeting, can you choose a slot that best suits you? I can chair the meeting next week as well on some other topic that I can ask the lab in this week's lab meeting.

@malvikasharan 7 or 14 May maybe as we don't have leads allocated to these topics?


DEV-937 energy monitoring

SonarQube analysis reported 9 issues

 1 critical
 4 major
 4 minor

Watch the comments in this conversation to review them.
1 extra issue
Note: The following issues were found on lines that were not modified in the pull request. Because these issues can't be reported as line comments, they are summarized here:

 AnalyticsController.java#L38: Refactor your code to get this URI from a customizable parameter.

SonarQube analysis reported 4 issues

 1 critical
 1 major
 2 minor

Watch the comments in this conversation to review them.
1 extra issue
Note: The following issues were found on lines that were not modified in the pull request. Because these issues can't be reported as line comments, they are summarized here:

 AnalyticsController.java#L38: Refactor your code to get this URI from a customizable parameter.

SonarQube analysis reported 9 issues

 4 major
 5 minor

Watch the comments in this conversation to review them.
1 extra issue
Note: The following issues were found on lines that were not modified in the pull request. Because these issues can't be reported as line comments, they are summarized here:

 AnalyticsController.java#L38: Refactor your code to get this URI from a customizable parameter.

SonarQube analysis reported 2 issues

 2 minor

Watch the comments in this conversation to review them.
1 extra issue
Note: The following issues were found on lines that were not modified in the pull request. Because these issues can't be reported as line comments, they are summarized here:

 AnalyticsController.java#L38: Refactor your code to get this URI from a customizable parameter.

SonarQube analysis reported 2 issues

 2 minor

Watch the comments in this conversation to review them.
1 extra issue
Note: The following issues were found on lines that were not modified in the pull request. Because these issues can't be reported as line comments, they are summarized here:

 AnalyticsController.java#L38: Refactor your code to get this URI from a customizable parameter.

SonarQube analysis reported 3 issues

 3 minor

Watch the comments in this conversation to review them.
1 extra issue
Note: The following issues were found on lines that were not modified in the pull request. Because these issues can't be reported as line comments, they are summarized here:

 AnalyticsController.java#L38: Refactor your code to get this URI from a customizable parameter.

SonarQube analysis reported 2 issues

 2 minor

Watch the comments in this conversation to review them.
1 extra issue
Note: The following issues were found on lines that were not modified in the pull request. Because these issues can't be reported as line comments, they are summarized here:

 AnalyticsController.java#L38: Refactor your code to get this URI from a customizable parameter.

SonarQube analysis reported 2 issues

 2 minor

Watch the comments in this conversation to review them.
1 extra issue
Note: The following issues were found on lines that were not modified in the pull request. Because these issues can't be reported as line comments, they are summarized here:

 AnalyticsController.java#L38: Refactor your code to get this URI from a customizable parameter.

SonarQube analysis reported 2 issues

 2 minor

Watch the comments in this conversation to review them.
1 extra issue
Note: The following issues were found on lines that were not modified in the pull request. Because these issues can't be reported as line comments, they are summarized here:

 AnalyticsController.java#L38: Refactor your code to get this URI from a customizable parameter.

SonarQube analysis reported 2 issues

 2 minor

Watch the comments in this conversation to review them.
1 extra issue
Note: The following issues were found on lines that were not modified in the pull request. Because these issues can't be reported as line comments, they are summarized here:

 AnalyticsController.java#L38: Refactor your code to get this URI from a customizable parameter.

SonarQube analysis reported 2 issues

 2 minor

Watch the comments in this conversation to review them.
1 extra issue
Note: The following issues were found on lines that were not modified in the pull request. Because these issues can't be reported as line comments, they are summarized here:

 AnalyticsController.java#L38: Refactor your code to get this URI from a customizable parameter.

SonarQube analysis reported 2 issues

 2 minor

Watch the comments in this conversation to review them.
1 extra issue
Note: The following issues were found on lines that were not modified in the pull request. Because these issues can't be reported as line comments, they are summarized here:

 AnalyticsController.java#L38: Refactor your code to get this URI from a customizable parameter.

SonarQube analysis reported 2 issues

 2 minor

Watch the comments in this conversation to review them.
1 extra issue
Note: The following issues were found on lines that were not modified in the pull request. Because these issues can't be reported as line comments, they are summarized here:

 AnalyticsController.java#L38: Refactor your code to get this URI from a customizable parameter.


Only bottom windows have statusline

As can be seen in the screenshot below, the two windows at the bottom have statusline, but the two other windows do not:

Is there any way to enable statusline for all windows?

Thanks.


when run gulp generic,it doesn't generate pdf.js and pdf.worker.js

Attach (recommended) or Link to PDF file here:
Configuration:

Web browser and its version:
Operating system and its version:
PDF.js version:
Is a browser extension:

Steps to reproduce the problem:

operate follow https://github.com/mozilla/pdf.js
2.when run gulp generic,it doesn't generate pdf.js and pdf.worker.js.
it generates a directory build/generic/web but not build/generic/build

What is the expected behavior? (add screenshot)
What went wrong? (add screenshot)
Link to a viewer (if hosted on a site other than mozilla.github.io/pdf.js or as Firefox/Chrome extension):

did you check  the build/generic/build/ directory inside? both .js files are in this directory

Works for me, and without any of the requested information provided we won't be able to help.
Are there any error messages printed? If so you need to provide them as well!
Please keep in mind that by default, when running gulp generic, the code will be transpiled using Babel. In some environments, e.g. on Windows, that part can take a while (of the order of minutes).
Are you sure that the build step actually finished, before you concluded that it didn't work?
As is, this issue will be closed as incomplete.

Thanks a lot ,according to Snuffleupagus's proposal,I wait for a few minutes and it actually generates the folder build which includes .js.
Thanks again!


broken with kiota-serializers-json 0.3.5

Where did you get the code?

[ X] Downloaded from GitHub

Describe the bug
This is not a bug.  As the project is written, everything works fine.
The requirements modules are out of date.   More recent versions are available for many.  Updating all to the latest versions, on python 3.10, I find that microsoft-kiota-serializers-json 0.3.5 breaks this project, while microsoft-kiota-serializers-json 0.3.4 works.
To Reproduce
Steps to reproduce the behavior:

in requirements.txt change:
'microsoft-kiota-serializers-json==0.3.1'

to
'microsoft-kiota-serializers-json==0.3.5'

run:
python -m pip install -r requirements.txt
python main.py

Workaround:
Don't microsoft-kiota-serializers-json past version 0.3.4
Expected behavior
Expect
Hello: (user)
Email: (address)
Get
Hello: None
Email: None
Desktop (please complete the following information):
OS: Debian 11
Python 3.10
Dependency versions

msal: 1.22.0
msgraph-sdk: 1.0.0a12

Additional context
Not really a bug for this project, but don't know who to contact.

@stbrie there's a new version of the SDK that incorporates the changes to the serialization library that's in the release process right now. Hopefully it will be available in the next few days. I'll keep this open to monitor.

@jasonjoh You must have done something, because they kicked out a new version (0.3.6) of kiota-serializers-json that fixes the problem.
Please close this issue report.


Support synchronous sending for batches of messages

Currently, the sync producer doesn't support sending batches of messages, even though the underlying protocol allows this (and the java client library supports this too).
We have a need to send a batch of messages reliably with acknowledgment, but don't want to incur the multiple round trips required with sending each message individually.

There is a minor ambiguity here: do you need to ensure that the batch succeeds or fails atomically as a single group, or do you just need to know when they've all been delivered.
Atomic batch-level success/failure is complicated, and I'm not likely to get to it in the near-future (pull requests welcome of course). If you don't need that, then the question becomes: what should the hypothetical SendMessages([]*ProducerMessage) return when some of the messages succeed but others fail?

I would assume that you would return a []*ProducerResponse where a ProducerResponse includes an error that might be nil.  Something like the ProducerError returned from the async producer.

I think it should behave the same as the java client version, which is to only indicate whether all messages succeeded, or not.  If there was a failure, don't bother with returning details about which ones succeeded and which ones failed.  Producer clients can expect to resend the whole batch if there is any failure (which is ok, since with kafka, we only guarantee at-least-once delivery, and consumers have to be tolerant of duplicates, and process messages idempotently).

fwiw, this is also how async sending should work too, really (e.g. internally, you buffer up messages and send out batches, and then only report success or failure at the batch level)....

internally, you buffer up messages and send out batches

We already do that.

then only report success or failure at the batch level

We decided that callers shouldn't have to care about our internal choice of batches (which is good, since the algorithm we use has changed a few times already), so we propagate the batch-level errors back to individual messages. This results in a simpler API.

Agreed, sending the batch-level result back to individual messages makes sense.

So I dug into this a little more.  It looks like the sync producer is actually built on top of the async producer.  It just sends a message to the async producer and blocks on a channel that it puts into the metadata.  When it gets a response from the async producer, it writes to the channel, unblocking the first call.  So, assuming the async producer uses batching, sending a bunch of individual messages to the sync producer should batch them up, as long as they are sent from separate goroutines, so you aren't waiting on the response from one before sending the next.  Not an optimal interface, though.

@tadbook your analysis is correct (and yes the async producer does use batching) however that method would not guarantee ordering within a given batch.
#677 implements a proper SendMessages(msgs []*ProducerMessage) method, still built on top of the async producer but in a way that guarantees order and only requires one goroutine instead of n.

Awesome!  Thanks for doing that, and thanks for the quick turnaround.


[research]  Graceful redirects for changing path & fields

[research]  Graceful redirects for changing path & fields. This is the research issue, not the implementation solution.

https://iatidatastore.iatistandard.org/api/1/access/activity.xml


Dns proxy port test

Test DNS proxy always setting the source port to a fixed value (1109).
cilium/dns is updated to make it look for an unused request id value if there is a conflict with a pending request.
Cilium dns proxy now needs to make sure a conntrack entry with the proxy redirect flag exists so that DNS responses get back to the proxy.

/test


i have a windows application and I am trying to get the class name of that application.

Can anyone tell me how to get the class name of the windows application to start creating automation script once i open the application?

NikitaTurakhia What do you mean ClassName of the application? Could you explain why you need it?
Usually, controls have a class name...

This question doesnt make much sense... typically the launching of the application is handled via WinAppDriver which should focus the driver on the application. If you are starting the app separately from the launching of WinAppDriver you should be able to first focus the root (which is essentially your desktop) and then focus the session based on the windows handle of the application.
You need to provide more details if you want help.

@Tree55Topz Thank you for the help. I was just wondering that if I want to create the root session of any windows app, I will need to use a class name and I did not know how to get the classname or automationid of any windows app?

@NikitaTurakhia you would use the inspect tool. Just look up inspect.exe download or something like that.

@Tree55Topz Okay. Thank you.


GCloud tf-gpu Image and tfa compatability?

System information

OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Ubuntu 18.04 within Docker on Mac
TensorFlow version and how it was installed (source or binary): 2.0-gpu via GCloud image (see below)
TensorFlow-Addons version and how it was installed (source or binary): 0.6.0 via pip
Python version: 3.5
Is GPU used? (yes/no): no

Describe the bug
I'm trying to use tfa on the GCloud tensorflow-gpu image via Docker and I'm having trouble getting it to import. The import fails with the error tensorflow.python.framework.errors_impl.NotFoundError: /root/miniconda3/lib/python3.5/site-packages/tensorflow_addons/custom_ops/activations/_activation_ops.so: undefined symbol: _ZN10tensorflow12OpDefBuilder4AttrESs.
Looks like some gnarly incompatibility between TF and TFA installs/versions, but the error is way above my head.
Code to reproduce the issue
Dockerfile:
FROM gcr.io/deeplearning-platform-release/tf2-gpu.2-0
...
RUN pip install --upgrade pip
RUN pip install -r requirements.txt # including tensorflow-addons==0.6.0

Python:
import tensorflow_addons as tfa
Other info / logs
Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached.
2019-11-06 15:29:43.940868: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcudart.so.10.0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/root/miniconda3/lib/python3.5/site-packages/tensorflow_addons/init.py", line 21, in <module>
from tensorflow_addons import activations
File "/root/miniconda3/lib/python3.5/site-packages/tensorflow_addons/activations/init.py", line 21, in <module>
from tensorflow_addons.activations.gelu import gelu
File "/root/miniconda3/lib/python3.5/site-packages/tensorflow_addons/activations/gelu.py", line 25, in <module>
get_path_to_datafile("custom_ops/activations/_activation_ops.so"))
File "/root/miniconda3/lib/python3.5/site-packages/tensorflow_core/python/framework/load_library.py", line 61, in load_op_library
lib_handle = py_tf.TF_LoadLibrary(library_filename)
tensorflow.python.framework.errors_impl.NotFoundError: /root/miniconda3/lib/python3.5/site-packages/tensorflow_addons/custom_ops/activations/_activation_ops.so: undefined symbol: _ZN10tensorflow12OpDefBuilder4AttrESs

To investigate if this error was somehow related to the host machine, I re-ran the same container on a GCloud Compute instance with Ubuntu 18.04, P100 GPU and CUDA 10.0 installed. I get the same import error on that machine as my non-CUDA Mac desktop.

I saw the same error on Kaggle when running "pip install tensorflow-addons" in a non-GPU Kaggle notebook. If you enable the GPU, the installation succeeds, probably because the underlying image is different.

Thanks for the info! Yes this is generally because the TensorFlow has a an ABI incompatibility with the way we package our pip wheel. This issue will one day be resolved by this RFC which is already underway:
https://github.com/tensorflow/community/pull/133
In the mean time though we can look at that docker image and see how it was compiling TF. Does anyone know where we can access the Dockerfiles for these?

An update - I've changed my setup to use the Tensorflow/CUDA "Deep Learning VM" boot disk from GCP directly (i.e. without docker) and I get the same error. I assume the VM is created the same way as the Dockerfile.
(this was motivated by another op issue in TensorFlow itself, https://github.com/tensorflow/tensorflow/issues/34112 - I'm not having much luck!)

Got the same error from a SageMaker instance with TF2.0.0.

So I just wanted to comment on this so it's known that this is still being looked at:
At a high level the issue is that we can only upload a single package to pip, so we make that whl compatible with the pip version of tensorflow. Many docker images will choose to compile TF from source (or install from conda) so that TF will be most performant, but that means ABI incompatibilities with the whl we publish.
For example I checked gcr.io/deeplearning-platform-release/tf2-gpu.2-0 image and the default installed tensorflow uses CXX11_ABI_FLAG=1, but the tensorflow pip package / tfa pip package use CXX11_ABI_FLAG=0
docker run --rm gcr.io/deeplearning-platform-release/tf2-gpu.2-0 python -c "import tensorflow as tf; print(tf.sysconfig.CXX11_ABI_FLAG)"
>> 1

The best solution we can provide atm is that for custom TF installs (as found in these docker images) you'll want to compile TFA from source so that it matches the installed version of TF. You can see in our configure script that we compile TFA based on the installed TF compile flags. There are some other build issues we have (look for a refactor issue to be posted today/tomorrow), so this might still run into issues for the GPU version built from source.
Once we get ABI stable custom-ops (see RFC mentioned previously) this might be a non-issue, but at a minimum we would like it so compiling from source is always a workable solution.

is the RFC #133 planned to be included in TF 2.1 ?

is the RFC #133 planned to be included in TF 2.1 ?

Unfortunately no. It's being actively worked on and I believe a stable API has been built for CPU Only kernels but they're working on CUDA kernels.


docs(bulma): update build config

config in README is now the same as the config when creating a Nuxtjs+Bulma app with create-nuxt-app

postcss config changed
Run ESLint on save is not needed anymore, as @nuxtjs/eslint-module exists

Thanks


x/tools/gopls: issue an event when tests change

In my work to integrate #59445 into vscode-go, I am relying on file-change notifications to keep the test tree up to date as files change. @hyangah pointed out that the ideal solution would be to use notifications that tests were changed instead. I'm opening this issue to discuss whether it is feasible for gopls to send notifications to the editor when test discovery results change, and if so how that may be achieved.
CC @adonovan @findleyr

Related Issues and Documentation

x/tools/gopls: integrate test discovery #59445 (closed)

(Emoji vote if this was helpful or unhelpful; more detailed feedback welcome in this discussion.)

@firelizzard18 would it suffice to send a notification whenever the package is recomputed (in gopls terms: whenever we run storePackageResults, which happens when gopls detects that it needs to update its indexes).
Gopls already has its own rather complicated logic for invalidating package data. I suggest we start by using that heuristic, rather than trying to do something more fine-grained.

@findleyr Possibly. This idea started when Hana was reviewing my work on gopls-based test discovery and saw the fairly complex code I have for change detection, driven by vscode's file change notification. Having a notification for "package X changed" may eliminate some of that, but I'm not sure and it wouldn't be a lot.

Currently, vscode says "file X changed" with a list of ranges and the extension:

Ignores events where the list of changes is empty (I don't know where these come from),
Ignores events for non-files (we get notifications for git:// URIs) and for non-Go files,
Locates the workspace folder and ignores files that are not within any workspace,
Calls gopls.packages, updates test definitions, and detects what and how tests have changed.

Using a "package change" notification should eliminate the first two items, but those are single-line tests; the vast majority of the complexity is in the last point. And I still need to know if the contents of a test are modified - unless the notification included which ranges of which files were changed, I'd need to continue using my current solution. Otherwise I'd need to store the contents of the test to compare, and I'd have to compare every single test in the package in case the contents of a test was changed without changing its range.

@findleyr Possibly. This idea started when Hana was reviewing my work on gopls-based test discovery and saw the fairly complex code I have for change detection, driven by vscode's file change notification. Having a notification for "package X changed" may eliminate some of that, but I'm not sure and it wouldn't be a lot.

Currently, vscode says "file X changed" with a list of ranges and the extension:

Ignores events where the list of changes is empty (I don't know where these come from),
Ignores events for non-files (we get notifications for git:// URIs) and for non-Go files,
Locates the workspace folder and ignores files that are not within any workspace,

I think the "(test variant) package change" notification can help these three cases.
And, if we let the notification being sent when the test dependency is updated, that will also help the client to know approximately when to invalidate the previous test results and rerun invalidated tests if requested.

Calls gopls.packages, updates test definitions, and detects what and how tests have changed.

Using a "package change" notification should eliminate the first two items, but those are single-line tests; the vast majority of the complexity is in the last point. And I still need to know if the contents of a test are modified - unless the notification included which ranges of which files were changed, I'd need to continue using my current solution.

I naively thought the last step would be

calls gopls.packages for updated test.
generates a new test item trees based on the new response, and computes diff of the response to detect changed tests. (the response has all the ranges )

If that is the majority of the complexity in the current implementation (and it was just me overwhelmed by TS/JS :-() I think we can stay with your current implementation.

Otherwise I'd need to store the contents of the test to compare, and I'd have to compare every single test in the package in case the contents of a test was changed without changing its range.

I am afraid that will be challenging for gopls to correctly recognize (e.g. a function called in the test function was refactored and renamed, no test function range was changed; do we want to detect it as an test change event).

Given foo_test.go:
package foo

import "testing"

func TestFoo(t *testing.T) {
	t.Log("foo")
}

func TestBar(t *testing.T) {
	t.Log("bar")
}

The response from gopls.packages will be something like:
Response (JSON)
{
    "Packages": [
        {
            "Path": "example.com/foo",
            "ModulePath": "example.com",
            "ForTest": "example.com/foo",
            "TestFiles": [
                {
                    "URI": "file:///src/example.com/foo/foo_test.go",
                    "Tests": [
                        {
                            "Name": "TestFoo",
                            "Loc": {
                                "uri": "file:///src/example.com/foo/foo_test.go",
                                "range": {
                                    "start": {
                                        "line": 3,
                                        "character": 0
                                    },
                                    "end": {
                                        "line": 5,
                                        "character": 1
                                    }
                                }
                            }
                        },
                        {
                            "Name": "TestBar",
                            "Loc": {
                                "uri": "file:///src/example.com/foo/foo_test.go",
                                "range": {
                                    "start": {
                                        "line": 7,
                                        "character": 0
                                    },
                                    "end": {
                                        "line": 9,
                                        "character": 1
                                    }
                                }
                            }
                        }
                    ]
                }
            ]
        },
        {
            "Path": "example.com/foo",
            "ModulePath": "example.com",
            "ForTest": "",
            "TestFiles": null
        }
    ],
    "Module": {
        "example.com": {
            "Path": "example.com",
            "Version": "",
            "GoMod": "file:///src/example.com/go.mod"
        }
    }
}

The problem: I can't detect changes that don't change the range without more information. Scenarios:

I add a second line to TestBar

This will work fine. The range will change, the extension will detect that TestBar (and only TestBar) changed.

In TestFoo I change "foo" to "foo2"

There is no change to gopls.packages. The response is identical; all of the ranges, paths, names, etc are unchanged.

I add a second line to TestFoo

The range of both tests change even though TestBar was not modified.

In scenarios 2 and 3, I have no way of correctly identifying which tests have meaningfully changed without more information (or doing the whole copy-the-source-range-and-compare thing).

I naively thought the last step would be [...]

Me too. I implemented it that way and that might be the version of the code I showed you. But I discovered bugs when I tested the scenarios above.

Otherwise I'd need to store the contents of the test to compare, and I'd have to compare every single test in the package in case the contents of a test was changed without changing its range.

I am afraid that will be challenging for gopls to correctly recognize (e.g. a function called in the test function was refactored and renamed, no test function range was changed; do we want to detect it as an test change event).

I'm not actually suggesting store-and-compare as a real solution, that was a rhetorical comment. Granted, doing AST-level analysis to omit irrelevant changes would be super cool, but that's besides the point/not what I want to talk about now. A list of changes expressed as (file, modified range) is sufficient. After a refactoring I did yesterday, the update process now distinguishes between changes to the range and changes to the contents. When the range changes, I update the TestItem so VSCode's testing support works correctly. However, to determine whether the test should be invalidated/rerun I look at which ranges were modified. My logic is simply: "If one of the modification ranges overlaps the test range, invalidate/rerun it." If gopls's package change notification included Changes []protocol.Location that would be enough, though it wouldn't remove all the complexity because I'd still need to figure out which tests were affected by that list.


[optimize] round decimal number by 2 digit

Hey, dear Kaaveh, is this issue assigned to anyone?

Hi,
No, do you like to work on it?

Also, there is a task about its color to match the Dynamic color of other parts of the UI. I think you are the best candidate for doing that task.

Yes, I do both of them, sure
Which parts don't exactly match the dynamic color?

I saw, this issue #145

I saw, this issue #145

Exactly, feel free to choose best colors for them! ✌🏻


correctness of lzw_fraction computation

I don't know what this is supposed to compute but the line dictionary[c] = dict_size looks highly suspicious because dict_size at that point is not the dictionary size.  :P)
def lzw_fraction(sequence):
    if sequence == "":
        return 0.0
    sequence = sequence.upper()
    dict_size = 0
    dictionary = {}
    # Initialize dictionary with single char
    for c in sequence:
        dict_size += 1
        dictionary[c] = dict_size
    word = ""
    results = []
    for c in sequence:
        wc = word + c
        if dictionary.get(wc):
            word = wc
        else:
            results.append(dictionary[word])
            dict_size += 1
            dictionary[wc] = dict_size
            word = c
    if word != "":
        results.append(dictionary[word])
    return float(len(results))/len(sequence)

I see now that the values stored in the dictionary are not used.
Anyway I think this similar algorithm represents better compression :P )   I would appreciate some explanation of why are we using the specific algorithm above instead of say the one below or any number of similar algorithms.   Very small perturbations in these algorithms (e.g. changing word = c to "word = ""` above) can result in big changes in "compression" ratios.
#!/usr/bin/env python
import sys

def lzw_fraction(sequence):
    s = set()
    w = ''
    for c in sequence:
        w += c
        if w not in s:
            print(w)
            s.add(w)
            w = ''
    return float(len(s)) / len(sequence)

if __name__ == "__main__":
    print(lzw_fraction(sys.argv[1]))

(aeon) ./lzw.py "aababcabcdabcdeabcdefabcdefgabcdefghabcdefghi"                                                                                Fri 6:48pm
a
ab
abc
abcd
abcde
abcdef
abcdefg
abcdefgh
abcdefghi
0.2

Btw my concern here was twofold.   First, correctness is important in its own right, obviously.   Second, this is a piece of python that takes 2-3 minutes even on small samples (~1GB fastq.gz) and we could easily make it much faster.

Note from Charles is the current pipeline code matches the DeRisi lab reference implementation.

s3://czbiohub-infectious-disease/ngs_scripts/lzw-filter-v1.0.php

https://rosettacode.org/wiki/LZW_compression#Python
Our implementation is almost exactly the same as the rosettacode. There's a slight bug in our current for scanning through the sequence to build the initial dictionary but it doesn't actually affect the results.

Agreed that it doesn't affect results.   If we want the exact same behavior, the pythonic implementation is this:
def lzw_fraction(sequence):
    s = set(sequence)
    w = ''
    for c in sequence:
        w += c
        if w not in s:
            s.add(w)
            w = c   # i wish this was w = '', --boris
    if w not in s:
        s.add(w)
    return float(len(s)) / len(sequence)

I annotated the line above where I can't say I agree with the reference, but don't mind preserving the proven behavior.
With this rewrite, and parallelizing, we should have good speed up.

Hm I don't think this works.

def lzw_fraction(sequence):
...     s = set(sequence)
...     w = ''
...     for c in sequence:
...         w += c
...         if w not in s:
...             s.add(w)
...             w = c   # i wish this was w = '', --boris
...     if w not in s:
...         s.add(w)
...     return float(len(s)) / len(sequence)
...
lzw_fraction("actg")
1.75

Current implementation:

def compress(uncompressed):
...     # Build the dictionary.
...     dict_size = 0
...     dictionary = {}
...     w = ""
...     result = []
...     for c in uncompressed:
...         if not dictionary.get(c):
...             dictionary[c] = dict_size
...             dict_size += 1
...     for c in uncompressed:
...         wc = w + c
...         if wc in dictionary:
...             w = wc
...         else:
...             if w:
...                 result.append(dictionary[w])
...             # Add wc to the dictionary.
...             dictionary[wc] = dict_size
...             dict_size += 1
...             w = c
...
...     # Output the code for w.
...     if w:
...         result.append(dictionary[w])
...     return (result, dictionary)
...
compress("actg")
([0, 1, 2, 3], {'a': 0, 'c': 1, 'g': 3, 'ac': 4, 't': 2, 'tg': 6, 'ct': 5})

It would give you 1 back.

x = "actgtgaaactgaattccgg"
float(len(compress(x)[0]))/len(x)
0.8
lzw_fraction(x)
0.95

Yeah I see one unintended difference, I wrote if w not in s:  s.add(w) but actually in the original code it's if w: s.add(w) which is super bogus because it's only checking if the loop made at least one iteration.

it doesn't sound so bogus to me basically the original lzw code. w is the word from previous round.
it does result.append(dictionay[w]) when w was set in the else branch.

What you say makes sense, and I will study this some more, looking at the decompress function.


Supporting tmpDir option

CacheSwap has an option called 'tmpDir' which defines the root of the temporary directory where the cache files will be saved to.
Added optional option 'tmpDir' which will be passed to CacheSwap.
Default value is os.tmpdir()

This is great @bferenc, thanks!
Could you update the readme as well just to show that this is configurable?

Updated the readme.md file. Let me know if anything else is needed! Thank you!

Thanks @bferenc, I'll publish to npm just now

Thank you!


I would like to know where is it that you configured the text color used on the channel's name and the  user names inside the channels.
Anf if what I said isn't clear, as my english is far from perfect. I'm leaving this pic here.

While I'm am at it I have another thing to ask.

Is this my fault, or is there something you need to update?
Thx in advance, the theme you made is really good.

Set a backdropblurred variable. If you want it to be transparent and not blurred, just paste the same image link in for both variables.

The text color looks better when blurred, and that's why it looks strange in your case. I could convert them to factors of white later.


[feature request] a TCP/IP tab in process properties dialog

like process explorer, it will be very useful when analyzing network issues or debugging programs

Yes, please, this would be very useful.
Came here to ask for this feature.

@dmex That will be great!

+1


Forgot to disclose to comment out GRUB_TERMINAL_OUTPUT = terminal

Yeah, title says it, you kind of forgot to disclose that (if you don't comment it out it just wont use minegrub.)

Hello! I've actually never used that option. On my systems the line says this by default:
#GRUB_TERMINAL_OUTPUT=console

So it won't work if this line is commented in? Is that the default option in some distros?
I may add this to the README, but I think that it's more of a general grub issue if a theme doesn't display at all.
But thanks for the note, I didn't know that!


The "EmbedmentDepth" property needs a new home (StructuralPhysical?)

The QuantityTakeoffsAspects schema contains a class that we want to deprecate: PileAspect. The only detail preventing us from deprecating it is its "EmbedmentDepth" property.
Discussions need to take place in order to decide a better home for such property (if it needs to survive as an aligned/standard property on a Discipline-Physical schema - e.g. StructuralPhysical).

The StructuralPhysical already contains a "Pile" class, so it is a natural replacement for the qto:PileAspect usage. However, the latter contains a property (EmbedmentDepth) that we don't know if it should survive in the StructuralPhysical schema or not. That's the question the StructuralPhysical team needs to address.


Change: xNetAdapterAdvancedProperty: Add advanced properties

Add the folloing advanced properties:
"*DcbxMode","*EncapsulatedPacketTaskOffload","*NetworkDirect","*PacketDirect","*QOS","*RecvCompletionMethod","*RoceMaxFrameSize","*RscIPv4","*RssOnHostVPorts","RxIntModeration","*RxIntModerationProfile","*Sriov","*TCPUDPChecksumOffloadIPv4","*TCPUDPChecksumOffloadIPv6","*TxIntModerationProfile","*VMQ","*VMQVlanFiltering","*VlanID"
This Pull Request (PR) fixes the following issues:
Fixes #314
Task list:

[x] Change details added to Unreleased section of CHANGELOG.md?
[x] Added/updated documentation, comment-based help and descriptions in .schema.mof files where appropriate?
[ ] Examples appropriately updated?
[x] New/changed code adheres to Style Guidelines?
[ ] Unit and (optional) Integration tests created/updated where possible?

This change is

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: BarnumD sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

Codecov Report

Merging #317 into dev will not change coverage.
The diff coverage is n/a.

@@         Coverage Diff         @@
##            dev   #317   +/-   ##
===================================
  Coverage    98%    98%
===================================
  Files        26     26
  Lines      1887   1887
===================================
  Hits       1854   1854
  Misses       33     33

I'm not sure why the tests failed here, so I'm going to close and repoen this PR so that the tests execute again - which will hopefully fix the issue.

Just some minor tweaks to the CHANGELOG.MD - great stuff and thank you for submitting this @BarnumD

Reviewed 3 of 3 files at r1.
Review status: all files reviewed at latest revision, 2 unresolved discussions.

CHANGELOG.md, line 12 at r1 (raw file):

  - Converted exceptions to use ResourceHelper functions.
  - Changed unit tests to output Verbose logs.
- MSFT_xNetAdapterAdvancedProperty

Just for consistency, can you add a : to the end of this line?

CHANGELOG.md, line 13 at r1 (raw file):

  - Changed unit tests to output Verbose logs.
- MSFT_xNetAdapterAdvancedProperty
  - Added a number of additional advanced properties.

Can you add a  - Fixes [issue #314](https://github.com/PowerShell/xNetworking/issues/314). to the end of this line?

Comments from Reviewable

How's that?

Thank you very much @BarnumD - that is very much appreciated.

Reviewed 1 of 1 files at r2.
Review status: all files reviewed at latest revision, all discussions resolved.

Comments from Reviewable


S_DVBSUB

https://github.com/Matroska-Org/matroska-specification/blob/dfaf1eb14cd2cdb628967a09c8bbdd630f5b6118/subtitles.md#digital-video-broadcasting-dvb-subtitles
This time, i've a sample :wink:
dvbtextualsubtitles.zip
As a side note, TVheadend is able to produce it.
I've extracted it with FFmpeg.
EDIT: I should have mentioned that mkvmerge is able to produce it since 9.8.0.
As do TSDoctor and VideoRedoSuite, commercial softwares having a free trial.

It' was a laborious Git handling, but i think i'm done for this PR now ;)

FYI codecs.csv update is not necessary, it is used for legacy purposes only (should go away soon).

@JeromeMartinez Thank you for you approval :-)

Actually the opposite: you are the one who contributes ;-).
Don't hesitate to send new PRs.


UI component - Callout message not displaying (Angular)

put on hold until we can determine if Angular wrapper is necessary

Should be taken care of with new web component version


Add Scala into Vim runtime.

This PR references this issue.

Pete Cruz wrote:

Add Scala into Vim runtime.

It appears these files are maintained by Derek Wyatt.
I prefer if the author or maintainer submits the files
for inclusion.  That way I know this is intentional, and not picking up
random file that seem useful from the internet.
--
Those who live by the sword get shot by those who don't.
/// Bram Moolenaar --<EMAIL_ADDRESS>-- http://www.Moolenaar.net   \
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \
\\  an exciting new programming language -- http://www.Zimbu.org        ///
\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

OK. Thanks Bram. I'll get to this as soon as possible.
On Fri, Aug 19, 2016 at 3:45 PM Bram Moolenaar<EMAIL_ADDRESS>wrote:

Pete Cruz wrote:

Add Scala into Vim runtime.

It appears these files are maintained by Derek Wyatt.
I prefer if the author or maintainer submits the files
for inclusion.  That way I know this is intentional, and not picking up
random file that seem useful from the internet.
--
Those who live by the sword get shot by those who don't.
/// Bram Moolenaar --<EMAIL_ADDRESS>-- http://www.Moolenaar.net
\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/
\
\\  an exciting new programming language -- http://www.Zimbu.org
///
\\            help me help AIDS victims -- http://ICCF-Holland.org
///

@derekwyatt Are these the files we'd like to integrate into Vim's runtime? Would it be possible for you to do this? Since it appears I'm not able to create the PR since I'm not the maintainer.

closing in favor of 995


Bad MeshDescription

Hello!
I've wrapped glTFRuntime actor in a Blueprint in a way that the blueprint inherits from my slightly modified AglTFRuntimeAssetActor and stores relative path to the .glb asset. The Blueprint just calls scene loading (from .glb) on BeginPlay and PostActorCreated. With this I can drag'n'drop this blueprint to a scene and use it as a regular Unreal asset.
The problem is that with this approach when the model is loaded and displayed in the editor, the editor tries to cache static mesh data (when you start PIE with this asset in the scene or press "Compile" on Blueprint (with this asset in the scene)) and fails to do so because mesh description is not valid.
Engine/Source/Runtime/Engine/Private/StaticMesh.cpp, line 2823 on UE5:
checkf(Owner->IsMeshDescriptionValid(0), TEXT("Bad MeshDescription on %s"), *GetPathNameSafe(Owner));
This function checks for static mesh source models but I've checked the plugin does not create such (when parsing static mesh data). I've tried marking actor/components as transient in this case, tried loading empty mesh description, marking package as bIsCookedForEditor but this does not solve the issue.
I'm using Duck model from glTF samples.
I have very little knowledge in underling data used for static meshes in UE, thus I've decided to ask if you have any idea on how to fix this.

Hi MeshDescription is basically of no use out of the editor and it requires time to be generated. Fun fact, in older glTFRuntime releases the MeshDescription was the way staticmeshes were created (before moving to pure RHI structures). If you want you can check older releases (first months of 2021) to see if you can copy some part of the old code.

Got it, I will see what I can achieve with this tomorrow.

Update.
I'm using glTFRuntime-20201222 version to generate mesh (it's using MeshDescription for that), but mesh generation code causes some asserts to be triggered, specifically this function:
FStaticMeshOperations::ComputePolygonTangentsAndNormals(MeshDescription->GetMeshDescription());

causes some asserts, but it's marked as deprecated so I've replaced it with:
FStaticMeshOperations::ComputeTriangleTangentsAndNormals(MeshDescription->GetMeshDescription());

This causes no asserts but the mesh is not visible (probably not generated properly).
I then decided to do the following:

generate new mesh as usual (using new glTFRuntime code),
generate old mesh using old glTFRuntime code (using MeshDescription),
copy SourceModels from old mesh to the new one, using the following code:

UStaticMesh* StaticMesh = Asset->LoadStaticMesh(Node.MeshIndex, StaticMeshConfig);
StaticMesh->SetSourceModels(
    Asset->LoadStaticMeshUsingMeshDescription(
        Node.MeshIndex, StaticMeshConfig)->MoveSourceModels());

And it works like a charm! No crashes, no asserts, no warnings.
Thanks for the tip!

@Flone-dnb feel free to link to a gist (or your own repository) here. If some users will have the same issue it can be of help and maybe i can evaluate if adding an option for generating meshdescriptions can be worthy to have in the main branch

@rdeioris We've modified the plugin for our needs, I can't share any code because the project is under NDA, sorry. But the only things I did is:

copied old FglTFRuntimeParser::LoadStaticMesh_Internal from glTFRuntime-20201222 and wrapped it with a new function LoadStaticMeshUsingMeshDescription (just like the usual LoadStaticMesh),
added some FVector/FVector3f casts,
replaced FStaticMeshOperations::ComputePolygonTangentsAndNormals(MeshDescription->GetMeshDescription()); with FStaticMeshOperations::ComputeTriangleTangentsAndNormals(MeshDescription->GetMeshDescription());
and added this:

UStaticMesh* StaticMesh = Asset->LoadStaticMesh(Node.MeshIndex, StaticMeshConfig);
StaticMesh->SetSourceModels(
    Asset->LoadStaticMeshUsingMeshDescription(
        Node.MeshIndex, StaticMeshConfig)->MoveSourceModels());

in AglTFRuntimeAssetActor::ProcessNode method.
You can try for our own.

@Flone-dnb MeshDescription generation has been added in master (you will find the option in StaticMeshConfig struct)

@rdeioris Oh great! Are you planning a release soon? I will talk this over with my team next week because we also had some troubles with animation (crashes on some GLTF assets).

@Flone-dnb new version (20220823) has been just released


node-debug _mocha fails with "ECONNRESET" on node 0.12.2

Hi,
My system is running nodejs 0.12.2 with node-inspector 0.10. When I run the command "node-debug _mocha", the chrome browser is opened but the debugging sessions immediately crashes with the following error message:
Debugging _mocha
Debugger listening on port 5858
events.js:85
throw er; // Unhandled 'error' event
^
Error: read ECONNRESET
at exports._errnoException (util.js:746:11)
at TCP.onread (net.js:559:26)
Just wondering if this is a known issue and if there are any workaround to debug mocha tests with node-debug.

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/14318376-node-debug-_mocha-fails-with-econnreset-on-node-0-12-2?utm_campaign=plugin&utm_content=tracker%2F195817&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F195817&utm_medium=issues&utm_source=github).

Please try to reproduce this on node-inspector 0.10.1

@3y3 it does not crash anymore, thanks for the tip.

Good news!


(migration) error when upgrading from 0.8.13 to 0.9.x

I am currently using djangocms-blog version 0.8.13 and wanted to upgrade it to a 0.9.x version.
The problem is that the migration I am depending on isn't existing in version 0.9.x.
Specific:

v0.8.13 -> 0022_auto_20170304_1040.py
v0.9.x -> 0022_auto_20160605_2305.py
(as I just saw: 0.8.13 is not available in github, but in pypi. Nevertheless the wrong migration is also available in 0.8.12)

I tried the following steps:

migrate djangocms_blog to 0021 (this also reverts my migration with the dependency)
install the new version
migrate the new version of djangocms_blog
error: meta_description entries are too long (fixed with deleting the data in djangocms_blog_post_translation.meta_description)
error: djangocms_blog_post_related already exists

Is there already a way to upgrade this which solves this problems (and maybe some others) and keeps the data?
Thanks already.

Thanks @wfehr for reporting this. Indeed, a migration from 0.8 branch has not been ported to 0.9 :man_facepalming:
We will release a 0.9 version that integrate this. Would you be willing to test a PR that fixes this?

@wfehr could you test the linked PR? (0.8.13 was pushed on release but apparently not the tag, only the tip of release/0.8.x branch. This is now fixed, thanks again)

updated the issue description because the second error with "post_related" was my fault, I didn't reset the database correctly.
At the moment I am still getting an error when migrating djangocms_blog:

Applying djangocms_blog.0031_auto_20170610_1744... OK
Applying djangocms_blog.0032_auto_20180109_0023...Traceback (most recent call last):
File "/usr/local/lib/python3.6/site-packages/django/db/backends/utils.py", line 64, in execute
return self.cursor.execute(sql, params)
[...]
File "/usr/local/lib/python3.6/site-packages/MySQLdb/connections.py", line 277, in query
_mysql.connection.query(self, query)
_mysql_exceptions.OperationalError: (1071, 'Specified key was too long; max key length is 767 bytes')
[...]

I deleted the data in 'djangocms_blog_post_translation' but still got the same error.

Currently having some other issues right now with the categories and posts. But I am not sure if it is again a problem of mine, still trying to find out.
Yep, these are problems of mine. Needed to add "sortedm2m" to INSTALLED_APPS and change my template for the menu.

Looks good, thanks @yakky for the work :+1:

@wfehr thanks for checking! A new release is on the way


Adding websocket port to list of ports - fix for #6200

Signed-off-by: Vishnu S<EMAIL_ADDRESS>Description
This PR fixes #6200
Notes for Reviewers
Signed commits

[x] Yes, I signed my commits.

🚀 Preview for commit 05516cfe49d9a396ec74abbe92e7e772ad309811 at: https://631cdff0b9acb87eff5ae412--meshery-docs-preview.netlify.app

🚀 Preview for commit 1d443867e1b33f7c3b9f714e17bb792761dbe65f at: https://631ce223f19e9b0278e049ae--meshery-docs-preview.netlify.app

https://631ce223f19e9b0278e049ae--meshery-docs-preview.netlify.app/concepts/architecture
Scroll to the bottom of the page. The meshery-perf row which is the bottom-most row is shorter than the rows preceding it. We'll need to fix that before merging

🚀 Preview for commit 6df5bae3560bfbfabc7ffde5aa03330fa48fba9a at: https://631e5357d1b60478129d7dc5--meshery-docs-preview.netlify.app

Hi @hershd23. I've made that change.

🚀 Preview for commit f2a4430b4898e7e3cd69e2e72ee1787da3a79c0e at: https://631e5848780f1a7e52cb2f89--meshery-docs-preview.netlify.app

My bad. First time contributing so I tried to read everything I can but committing to my forked branch automatically pulled the changes here as well which caused the sign off issue. I understand that each commit should be signed off for successful CI run. Is it okay if I close this PR and open a new one. Please let me know.
Thanks. Always learning! 😅

🚀 Preview for commit a987553a918ec81bc322b9cffeb46728cf2d595e at: https://631e5b1b734bf17c5e3a8f05--meshery-docs-preview.netlify.app

🚀 Preview for commit 87f773dfffc31a9f4dfde719876511417920796f at: https://631e5d649907ec7a8881bba7--meshery-docs-preview.netlify.app

Had to understand why CI tests were failing and fix it. Finally it looks good now.
Always learning! This is my first contribution here.

Oops looks like I don't have write access to master for this repo.
@leecalcote @CyrineG @Revolyssup take a look and merge if the changes seem fine

Given it looks perfect, I'll approve your changes.
LGTM
Any idea as to why removing the line break between those two lines did the trick?

I don't know the exact reason why that fix was working but this is what I found out during the fix:
As we're using a custom formatting method here for the entries with images, adding line breaker was considering the entries without custom formatting as an empty entry which messed up the alignment. When you try putting a '|' after the line breaker in the same line, it'll show the empty row without any entry and then Meshery Perf in a new row below it.
I've just figured out the actual fix for the issue. It was a missing "-" in the  {% endfor -%}.
I'll push this change so that the actual fix can be merged before final review.

🚀 Preview for commit 07f2cc3262ca3175feecaabbd5aba79a895b30e5 at: https://631f192ef19e9b1453e048f8--meshery-docs-preview.netlify.app

Hi @CyrineG @hershd23 .
Sorry that you have to do the commit review again but this one seems to be more logical as I found out that the issue was actually a syntax error.
Thank you.

You have absolutely nothing to be sorry about. Infact had we pushed in that hacky fix it would have caused problems in the future.
Great work, digging in to the issue.

Hi @leecalcote. Can you approve the changes as other PRs are being committed into the repo which would need me to update the branch again and possibly require another review? I'm not sure though.
Thanks.

🚀 Preview for commit ada8324fd0472fc7fd2f7d4d81ad1b1b8ca59e33 at: https://6320c449da84ae01aa0eba15--meshery-docs-preview.netlify.app


IRIS 2024.2 on Windows no longer ships irispip.exe

https://github.com/intersystems/ipm/blob/5a4e85ff129573e6337ab205fc07946859bf3e33/src/%25ZPM/PackageManager/Developer/Lifecycle/Base.cls#L526
See also https://github.com/caretdev/irislab/issues/1

Fixed via #538 (v1) and #543 (master) - will be in next (soon!) release

will be in next (soon!) release

@isc-tleavitt Any sign of this?

@gjsjohnmurray thanks for the reminder. We've been focusing on the next major release and lost sight of this.


Adding some debug messages for rollup install

Changes
Adds debug messages during install when running Rollup

Testing
Debug messages don't have tests yet

@melissamcewen oh no! jinx!


Question: Upper Bound

If your machine is big enough, there should be no upper bound on the size of the dataset it can handle (well, 2^64-1 bytes is the limit, but I think we can all agree that's essentially unlimited).
Just out of the curiosity, what was the reason of this calculation?

We represent pointers into the dataset as 64 bit unsigned integers, and so any one suffix array can't have more than 2^64-1 bytes.


Edit of comments noot possible

Gitea Version
1.16.0
Git Version
No response
Operating System
Windows Server
How are you running Gitea?
Windows service that starts gitea.exe
Database
SQLite
Can you reproduce the bug on the Gitea demo site?
No
Log Gist
No response
Description
When clicking the edit button on issue comment etc. nothing happens and the following issue appears.
Just updated from 1.15.10 to 1.16.0
index.js?v=63283ac5ef3618dbfa5fcf82866ca1ea:82 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'value')     at HTMLDivElement.<anonymous> (index.js?v=63283ac5ef3618dbfa5fcf82866ca1ea:82:3669)     at Generator.next (<anonymous>)     at index.js?v=63283ac5ef3618dbfa5fcf82866ca1ea:77:5242     at new Promise (<anonymous>)     at Ws (index.js?v=63283ac5ef3618dbfa5fcf82866ca1ea:77:5062)     at HTMLDivElement.Bb (index.js?v=63283ac5ef3618dbfa5fcf82866ca1ea:82:561)     at HTMLDocument.dispatch (index.js?v=63283ac5ef3618dbfa5fcf82866ca1ea:1:274187)     at HTMLDocument.Nt.handle (index.js?v=63283ac5ef3618dbfa5fcf82866ca1ea:1:272017) (anonymous) @ index.js?v=63283ac5ef3618dbfa5fcf82866ca1ea:82 (anonymous) @ index.js?v=63283ac5ef3618dbfa5fcf82866ca1ea:77 Ws @ index.js?v=63283ac5ef3618dbfa5fcf82866ca1ea:77 Bb @ index.js?v=63283ac5ef3618dbfa5fcf82866ca1ea:82 dispatch @ index.js?v=63283ac5ef3618dbfa5fcf82866ca1ea:1 Nt.handle @ index.js?v=63283ac5ef3618dbfa5fcf82866ca1ea:1
Screenshots
No response

Is it related to local cached files? What about Private Window or Ctrl+F5?

I think this is likely a duplicate of #18281

Please clear the browser cache including ServiceWorker cache. Issue should resolve within 24 hours of the last visit of the old version.

I think this is likely a duplicate of #18281

@zeripath @silverwind If we make static files served in /assets/public-{ver}/js/index.js, then we do not need to ask users to clear their cache again and again, we can be sure that users always get correct files after every release. Changing directory name is the best solution now, it introduces the most minimal change and works for all files which are not managed by webpack.

https://github.com/go-gitea/gitea/pull/18348

Yes, dynamic assets names are the solution, but most people prefer the dynamic part in the filename, not in a folder name and this is also default webpack behaviour IIRC.

but most collaborators prefer the dynamic part in the filename, not in a folder name and this is also default webpack behaviour IIRC.

most sometimes is not correct. Before MVVM, most developers think jQuery is the best solution. I only care about what's the right thing to do.
Arguing things without a feasible solution from time to time won't solve problems, maybe one year later there are still a lot of users complaining about "why should I refresh my cache when upgrading Gitea".

To all, at the day of the update it did not work. Clearing the cache didn't help as well.
Today, it works fine. Multiple clients with different os and browsers. So likely its related to the browsers.

@zeripath @silverwind If we make static files served in /assets/public-{ver}/js/index.js, then we do not need to ask users to clear their cache again and again (like this one #18476 Unable to drag and drop issue cards from Kanban project), we can be sure that users always get correct files after every release.
Changing directory name is the best solution now, it introduces the most minimal change and works for all files which are not managed by webpack.

Use separate asset path for different build #18348

I have and had no problem with /assets/public-{ver}/js/index.js
My only problem was with /public-{ver}/... and the creation of new top-level dirs that would require more username restrictions.

@zeripath @silverwind If we make static files served in /assets/public-{ver}/js/index.js, then we do not need to ask users to clear their cache again and again (like this one #18476 Unable to drag and drop issue cards from Kanban project), we can be sure that users always get correct files after every release.
Changing directory name is the best solution now, it introduces the most minimal change and works for all files which are not managed by webpack.

Use separate asset path for different build #18348

I have and had no problem with /assets/public-{ver}/js/index.js
My only problem was with /public-{ver}/... and the creation of new top-level dirs that would require more username restrictions.

The top level is /assets which has been reserved. So I don't think there is any problem here.
But I also don't like add hash in the directory. Why not files? For files, we can have xxxxx-1-index.js and xxxxx-2-index.js in future. It could be splitted. I assume the generated index.js will become more big. But for a directory with hash, it's more difficult to do that.

But I also don't like to add hash in the directory. Why not files?

Please see the original closed PR, it already explained why. No one has done the refactoring of CodeMirror and other non-webpack resources.

For files, we can have xxxxx-1-index.js and xxxxx-2-index.js in future. It could be splitted. I assume the generated index.js will become more big. But for a directory with hash, it's more difficult to do that.

Why it could be a problem? We can have version in directory and hash in filename at the same time. I do not know why it's more difficult to do that. And explained in the original PR, even if using version in directory name, we can still use hash in filename in future. This mechanism could never be a blocker.

It's highly likely related the cache problem. This one can be closed and there are already many other cache related issues.


Update type definitions

This PR contains two commits.  The first is a straight-forward type definition update.  The other is updating acorn definitions while factoring out the project's specific overrides/enhancements to the definitions so that it doesn't conflict with updates from upstream.

sad :-(


with nervos as web3js provider for dapp browser

Seems to work with all functions in web3js, will keep as WIP until full testing and/or we find a way to fix the original

@hboon seems to be working fine in dapp browser, safe to merge for now.


Switch to go 1.19 in CI

What type of PR is this?
/kind ci
What this PR does / why we need it:
Which issue(s) this PR fixes:
None
Special notes for your reviewer:
None
Does this PR introduce a user-facing change?

None

Codecov Report

Merging #1072 (2cf209c) into main (121dbff) will decrease coverage by 0.72%.
The diff coverage is n/a.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1072      +/-   ##
==========================================
- Coverage   34.01%   33.30%   -0.72%
==========================================
  Files          13       13
  Lines        1126     1126
  Branches      389      389
==========================================
- Hits          383      375       -8
- Misses        486      494       +8
  Partials      257      257

/lgtm


L25324: Corrupted links to snipets

Hello, @scottaddie ,
Localization team has reported source content issue that causes localized version to have broken/different format compared to en-us version.
Please review and merge the proposed file change to fix to target versions. If you make related fix in another PR  then share your PR number so we can confirm and close this PR.
Many thanks in advance.

This is an incorrect format for moniker ranges. However, we did settle on one line space above and below them, so I'll add a commit to update the layout of these.


DocsArchive-<IP_ADDRESS>Auto archive content

Please don't merge this PR until target archive repo PR https://github.com/OPS-E2E-PPE/docs-archive-test-target/pull/234 is merged into live branch.
Auto archive content to https://github.com/OPS-E2E-PPE/docs-archive-test-target.git

Docs Build status updates of commit 6a9d10b:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error]

Cannot sync git repo to specified commit because branch Archive_master_2019-11-21-08-58-29 has been deleted or has been force pushed: fatal: couldn't find remote ref refs/heads/Archive_master_2019-11-21-08-58-29

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


301 Error when using devops/scripts/register_bundle_with_api.sh

Remember to label the issue with the appropriate area, and also assign it to yourself if you plan to work on the issue in the near future.
Describe the bug
When trying to Register templates via the document page https://microsoft.github.io/AzureTRE/tre-admins/registering-templates/ I receive a 301 - Permanent Redirect error (see below).
vscode ➜ .../AzureTRE/templates/workspaces/base (main) $ ../../../devops/scripts/register_bundle_with_api.sh -r *** -t workspace_service -w sonatype-nexus-vm -u *** -c -i -a a***
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
Dload  Upload   Total   Spent    Left  Speed
100  9060  100   195  100  8865     15    712  0:00:13  0:00:12  0:00:01  1908
Error while registering template
HTTP/1.1 100 Continue
HTTP/1.1 301 Moved Permanently
Server: Microsoft-Azure-Application-Gateway/v2
Date: Wed, 03 Aug 2022 19:39:50 GMT
Content-Type: text/html
Content-Length: 195
Connection: keep-alive
Location: https://***.cloudapp.azure.com/api/workspace-service-templates

301 Moved Permanently

301 Moved Permanently
Microsoft-Azure-Application-Gateway/v2

Steps to reproduce

execute  ../../../devops/scripts/register_bundle_with_api.sh from the ./templates/workspaces/base directory using the described switches

@daemel , we're updating the documentation today regarding the bundle registration.
Do use the prefered way with the make commands. Here's an example:
make bundle-build DIR=templates/workspace_services/azureml
make bundle-publish DIR=templates/workspace_services/azureml
make bundle-register DIR=templates/workspace_services/azureml BUNDLE_TYPE=workspace_service


TextEdit: prevent the copy of an empty string

With this change the clipboard isn't deleted after you hit Ctrl+C on an empty line.
Note:
RichTextLabel checks for empty strings before the copy to clipboard:
https://github.com/godotengine/godot/blob/4cf5bb027678717263476e676cd23f881eef1ca1/scene/gui/rich_text_label.cpp#L2074

Thanks!


[Menu Entry Swapper] Cannot use Teleport swap on some items with 'Teleport submenus' enabled

Type
Incorrect behavior
Operating System
Linux
OS Version
No response
Bug description
With Teleport submenus enabled in the Menu Entry Swapper settings, setting the left-click option to Teleport on an item with teleport submenus will instead swap that option to Wear. Swapping its shift-click option to Teleport will swap it correctly to Teleport, but shift-clicking it doesn't actually open the teleport menu.
I would like to be able to shift-click my diary cape to teleport to Jarr, while still able to left-click it to open the teleport menu as I have the shortcut keys memorized.
Screenshots or videos
No response
RuneLite version
RuneLite version: 1.10.27
Launcher version: 2.6.10
Logs
No response

fixed in 248aabf1eb9214b874f7a3452b47e6fce3c05024


Add Reflect everywhere, use bevy::reflect::TypePath instead of Named

Add Reflect everywhere
I want to add Reflect for several reasons:

it contains some convenience utilities such as getting the variant name of an enum, or in general getting the stable path of a name
it looks like the ecosystem will use Reflection for the editor so it might be a good idea to start using it
it has potential to allow me to split the protocol into multiple pieces, and use reflection, instead of having a giant enum for the MessageProtocol and ComponentProtocol
allows for debugging via bevy_inspector_egui

Still, we have a big breaking change, which is that every protocol-related type (Channel,Message,Input) now need to implement Reflect.
TODO: add reflect for each resource/component and register them
Remove the Named trait
Now that all types are Reflect, we can get rid of the Named trait and just use reflect::TypePath

This is amazing :)
Lmk if u want a review

Closing for now as the Named trait is not needed anymore (the message name is taken from the protocol directly)


Displaying cells under pivot column group

Hey there!
My problem is kind of similar to https://github.com/react-tools/react-table/issues/882, though it is slightly more complex and after doing some research I'm pretty much certain there's currently no workaround for it.
The issue:
I have a set of records, each record represents some data for particular province within a country (so it has country name and province name properties, among others). What I want to do is to group these records by country name, but I don't want to have another column for province name, since that's kind of redundant - I'd like to have my province names displayed within the same column as country, when I expand it.
So basically what I want to have is to replace this

with this

...and I've actually done that, using the trick from the issue mentioned before, but besides that, I'd like to have my provinces sorted within the group, so that when I choose to sort this column, the groups are sorted by country name, but inside each group, records are sorted by province name.
And that's the real issue, as it seems it can't be achieved, because to group the values properly, I need my accessor property to return the country name, but then sorting method receives only the country name (cell value), while it should also have province name. On the other hand, when I set my accessor to return the whole item (containing both province and country), then column grouping breaks.
Wrapping up, this problem could be resolved actually in many ways. There could be a property like "pivot by" for column, that would be something similar to accessor, or enable the sorting method to also receive original objects instead of cell values. Those would be the quickest solutions, though I'm not sure if those wouldn't be just workarounds for a bigger problem, and some additional design is needed?
Please let me know what you think about this and maybe if I'm missing something.

The pivot model only works for simple cases and needs to be removed completely from ReactTable so that more complex situations can be accomplished.  This will not happen until the next major upgrade - which is not even planned at this point.
I don't fully understand your requirement but you could look at implementing a custom sort function (either for the columns involved or at the table level) and see if that resolves the issue.  The pivot mechanism first sorts the data and then moves those sorted pivot columns to the front of the column list.  It might get you by.
Also not that the accessor result is what is used for sorting and filtering.  The Cell result is only used to display on the screen. So, if you build a custom sort, the "value" being tested comes from the accessor - which could be an object (as long as your Cell returns something that can be rendered).

@gary-menzel my point is following:
My object for each row is (simplified): { country: "Canada", province: "Ontario" }
I'd like to have country and province disabled in one column (like on image I've attached before).

When I choose accessor obj => obj.country, then I get my data properly pivoted by country, but then also the grouped rows (meant to be provinces) are being sorted by accessor's property (country), and I need them to be sorted by province prop. I also can't achieve anything by overriding sortBy, as it is being passed the result of accessor method, so I always get two country names to compare (while I'd rather need entire object there).

When I choose accessor obj => obj, then I'm able to override all that sorting and stuff, but pivoting simple doesn't work, as it takes accessor's result for grouping.

I think you are just fighting against what has been built for the pivot functionality.  You'll either have to look at forking the code and adjusting it or abandoning ReactTable for a different solution.  The pivot facility really does not have very much configurability in the current version of ReactTable (and is likely to be removed and migrated to a HOC or some other function as renderer mechanism in the next major version).

Got it, thanks for your feedback then!


PANDARIA: Support custom stores in thanos query via proxy

As 0.0.1 has been released, could you apply this change to v0.0.2?

Hold on.. Maybe we need a 0.0.3 chart as 2.3.6-ent2 will be released soon