Implement the AESBaseCipher class and let the AES128Cipher and AES256Cipher classes extend it

More information is provided in the commit messages. Unit tests are already available and still pass. I highly recommend to review this per commit instead of looking at the full diff and reviewing the second commit with the ?w=1 flag.
The diff of the two classes after the first commit can be found at https://www.diffchecker.com/fBgVIwRm. This clearly shows the amount of code duplication and that basically everything can live in the base class except for _expandKey. The decryptBlock differences are resolved by taking the one for AES-256 in the base class and setting the iv parameter to null by default so that for AES-128 nothing changes.
Fixes #5155.

Thank you for the review! I have made all changes and I did a benchmark of the code.
I created the following benchmark.json file with two files from the test suite that use the AES-128 cipher (found using grep -r "AESV2" test/* and confirmed by placing print statements in the class and opening the files in the viewer):
[
  {
    "id": "i9",
    "file": "pdfs/i9.pdf",
    "md5": "ba7cd54fdff083bb389295bc0415f6c5",
    "rounds": 20,
    "type": "load"
  },
  {
    "id": "ichiji.pdf",
    "file": "pdfs/ichiji.pdf",
    "md5": "66b645802d33513cd598886e017392b8",
    "rounds": 20,
    "type": "load"
  }
]

Then I ran all benchmarking steps from https://github.com/mozilla/pdf.js/wiki/Benchmarking-your-changes, which I updated to be more step-by-step and to include the gulp generic step, which was a really good point from you. Doing so I obtained the following table:
-- Grouped By browser, stat --
browser | stat         | Count | Baseline(ms) | Current(ms) | +/- |    %  | Result(P<.05)
------- | ------------ | ----- | ------------ | ----------- | --- | ----- | -------------
Firefox | Overall      |   120 |           55 |          54 |  -1 | -1.69 |
Firefox | Page Request |   120 |            3 |           3 |   0 | -4.26 |
Firefox | Rendering    |   120 |           52 |          52 |  -1 | -1.59 |

Therefore, we can conclude that this change has no negative performance impact.

/botio test


Programmatically getting notion to render the HTML/Markdown

Hey! Please disregard this if you already know, but just in case: you can get Notion to give you Markdown or HTML for a notion page by using the endpoints the webapp talks to. It's a fairly involved process and needs three requests for each page:
curl 'https://www.notion.so/api/v3/enqueueTask' -X POST -H 'Content-Type: application/json' -H 'Cookie: token_v2={{secret}};' --data-raw '{"task":{"eventName":"exportBlock","request":{"block":{"id":"{{id}}"},"recursive":false,"exportOptions":{"exportType":"html","timeZone":"Asia/Kolkata","locale":"en"}}}}'
#=> task id

curl 'https://www.notion.so/api/v3/getTasks' -X POST -H 'Content-Type: application/json' -H 'Cookie: token_v2={{secret}};' --data-raw '{"taskIds":["{{task id}}"]}'
# => s3 url

# curl/wget the s3 url

The output HTML is pretty much as it looks on notion minus the JS. Of course, this isn't supposed to be their "official" API, and they might deprecate it or lock it down any moment.

Hey thank you very much! ❤ I did know about the unofficial API but not this particular endpoint
And yeah I intentionally avoided this API since I wanted to use the official API to be on the safe side, even if they don’t deprecate it that’s their internal API and they can change it any day to update their apps and I would really like not to deal with that.
This also gives more freedom in how things can be generated and also styled (I intend to use this for a blog that I want to manage from a Notion document but I don’t want it to have default Notion styles)

That's fair, and I completely agree! I was also interested in generating statically rendered pages from notion, but I eventually gave up because it was tedious to do + getting a reliable "pull" from notion when a page was updated required a server polling all the time. In hindsight, a system like this with a manual build would've been better.

I intend to use a cronjob CloudFlare Worker to do the polling, I’ll be open sourcing that as well in few days (once I actually write it…) and I can post it here if you’re interested! Should be possible to run it on their free Workers plan


Getting "self does not exist" when trying to signAndBroadcast. Help!!

Im unable to sign and broadcast a transaction.
Heres what I'm doing.
let transaction = EosioTransaction()
transaction.rpcProvider = EosioRpcProvider(endpoint: URL(string: chainProvider.defaultChainUrl)!)
transaction.serializationProvider = EosioAbieosSerializationProvider()
transaction.signatureProvider = EosioVaultSignatureProvider(accessGroup: "group.lynx", requireBio: true)

let delegateData = DelegateData(from: try! EosioName(account.name), receiver: try! EosioName(account.name), transfer: false, stake_cpu_quantity: amount, stake_net_quantity: resourceTokenContract.zeroAsset)
let action = try! EosioTransaction.Action(account: EosioName("eosio"), name: EosioName("delegatebw"),
                                         authorization: [EosioTransaction.Action.Authorization(actor: EosioName(account.name),
                                                                                permission: EosioName("active"))],
                                         data: delegateData)

transaction.add(action: action)
transaction.signAndBroadcast { result in

    switch result {
    case .success(_):
        completion(nil)
    case .failure(let error):
        completion(OperationError.dataFailure(error.localizedDescription))
    }

}

Getting "self doesn't not exists error" on the return of rpcProvider.getInfo
        rpcProvider.getInfo { [weak self] (infoResponse) in
            guard let strongSelf = self else { < -- failing here.
                return completion(.failure(EosioError(.getInfoError, reason: "self does not exist")))
            }

It looks like you are letting the transaction fall out of scope before the sign and broadcast has completed.

Thank you, I've been staring at the screen too long. This helped. I've found my issue.

@ismyhc How to fix this error? thanks you

@opi-smccoole  how to fix it? help me to know about the transaction fall out of scope. Thanks you so much


Compilation error

I can't use this lib, not even the Readme example...
I got this:
➜  ~ cat scheduleExample.nim
import schedules, times, asyncdispatch

schedules:
  every(seconds=10, id="tick"):
    echo("tick", now())

  every(seconds=10, id="atick", async=true):
    echo("tick", now())
    await sleepAsync(3000)
➜  ~ nim c -r scheduleExample.nim --threads:on
Hint: used config file '/home/glasso/.choosenim/toolchains/nim-1.4.8/config/nim.cfg' [Conf]
Hint: used config file '/home/glasso/.choosenim/toolchains/nim-1.4.8/config/config.nims' [Conf]
......................................
/home/glasso/.nimble/pkgs/schedules-0.1.1/schedules.nim(31, 46) template/generic instantiation of `async` from here
/home/glasso/.nimble/pkgs/schedules-0.1.1/schedules.nim(32, 19) Error: undeclared identifier: 'Thread'
➜  ~ nim --version
Nim Compiler Version 1.4.8 [Linux: amd64]
Compiled at 2021-05-25
Copyright (c) 2006-2021 by Andreas Rumpf

git hash: 44e653a9314e1b8503f0fa4a8a34c3380b26fff3
active boot switches: -d:release

I tried to run in two computers, and I get this error in both...

Hi @GabrielLasso
You need to declare the thread-param before the filename. Otherwise the program will not be compiled with threads.
nim c --threads:on -r scheduleExample.nim

Everything after the filename is runtime-params and we need the program to compile with threads.

Oh, my bad :sweat_smile:

Now it works lol

I have added the nim command in the project readme so it'd be not bothered by the next person to try. 😺
Thanks for reporting.


tetra-cube (statblock generator)

I'm not sure if it's possible to include such statblock generator with GM Binder/Markdown compatybility, but if you think it's worth to add, I believe adding such compatibility might add statblock importer flexibility :)
I'm not sure, but that's my first result for 'dnd 5e statblock generator' in google, so I assume it might be pretty popular.

Are you saying that you want this module to support markdown? It doesn't need to. You just copy the plain text from the web page and paste it into the module window.
I just tried it with D&D 5e Statblock Generator and it works fine.

Hmmm... I tried this to before posting an issue, however, it seems like it does work actually... I had to mess something up when I tried before, now it works brilliant like from dndbeyond page. Sry for bother you, and thank you for awesome work!

Ah i Found the culprit, not every mob imports, for example take Eater of Dust as example:

Eater Of Dust (Yakat-Shi)
Medium aberration, neutral evil
Armor Class 17 (natural armor)
Hit Points 114 (12d8 + 60)
Speed 30 ft.
STR
20 (+5)
DEX
14 (+2)
CON
20 (+5)
INT
10 (+0)
WIS
15 (+2)
CHA
17 (+3)
Saving Throws Str +9, Con +9, Cha +7
Skills Athletics +9, Perception +6
Damage Resistances acid, cold
Damage Immunities bludgeoning, piercing, poison and slashing from nonmagical attacks
Condition Immunities blindness, lightning, poisoned
Senses blindsight 60 ft., passive Perception 16
Languages understands Abyssal, Common, Infernal, and Void Speech, telepathy 100 ft.
Challenge 9 (5,000 XP)
Innate Spellcasting. the eater of dust's innate spellcasting ability is Charisma (spell save DC 15, +7 to hit with spell attacks). It can innately cast the following spells, requiring no material components:
3/day each: freedom of movement, inflict wounds, true strike
1/day each: cure wounds (as 3rd level), magic weapon (as 6th level), misty step
Regeneration. The eater of dust regains 5 hit points at the start of its turn. If it takes fire damage, this trait does not function at the start of its next turn. The eater of dust dies only if it starts its turn with 0 hit points and does not regenerate.
Unending Hunger. An eater of dust can devour any substance with its mawblade, regardless of composition, and never get full. It can even gain nourishment from eating dust or soil (hence the name given to the race by various fiends). If an eater of dust's mawblade is ever stolen, lost, or destroyed, it slowly starves to death.
Weapon Bond. A mawblade is part of the eater of dust. It can strike any creature as if it were magically enchanted and made of silver, iron, or other materials required to overcome immunities or resistances. An eater of dust always knows the location of its mawblade as if using the locate creature spell.
Actions
Multiattack. The eater of dust makes two mawblade attacks, or makes one mawblade attack and casts inflict wounds.
Mawblade. Melee Weapon Attack: +9 to hit, one target. Hit: 19 (4d6 + 5) piercing damage, and the target must make a successful DC 17 Constitution saving throw or gain one level of exhaustion.

It's taken from the same stat-generator :)
https://tetra-cube.com/dnd/dnd-statblock.html

Can you point out which part exactly isn't importing right? I just want to make sure I don't overlook it.

I ran into an error with that statblock you posted and so updated the module with a fix. Let me know if it works for you now with v1.5.5.

So far I've tried over 40 mobs, including my old saved ones... And didn't found any problem. Thank you :D.


Ajax queries the results, but when the component is displayed, the first one is lost

Reproduction Link
Steps to reproduce
Expected behaviour
Actual behaviour

@wonderfulo Please open another issue with more information


custom.js 404

When viewing the OPAC with the plugin enabled, there is an attempt at loading http://example.com/plugin/Koha/Plugin/EDS/js/custom/custom.js but since this file does not exist, it results in a 404 status.

Not able to replicate this issue in the latest release. Could you kindly verify if this is still happening?

What do you mean by the "latest release"? This?
https://github.com/ebsco/edsapi-koha-plugin/blob/master/eds_plugin_17.05.kpz

I can confirm that https://prv.bibkat.se/plugin/Koha/Plugin/EDS/js/custom/custom.js gives a normal 100 response after upgrading to https://github.com/ebsco/edsapi-koha-plugin/blob/master/eds_plugin_17.05.kpz
Thanks!


Auth directive in input field ignores applyPolicy function

We are using mercurius with fastify in this server setup.
We have an archetype validator directive in which works pretty sweet in the Query,Mutation, Subscription, and field resolvers.
But the issue arises when the directive is applied in the arguments. It doesn't trigger the directive's validator function.
have even tried it with

INPUT_FIELD_DEFINITION | INPUT_OBJECT
creating a new directive, registering it and renaming it in schema input
and does not pick it up.. the mutation gets called anyways (so have to do the check in the execution logic)

example mutation:
  editUser(
    first_name: String
    ...
    role_id: ObjectID @authArchetype(requires: [superadmin])
  ): User  @authArchetype(requires: [superadmin, admin])

registering directive:
.register(mercuriusAuth, {
      async applyPolicy(authDirectiveAST, parent, args, context) {
       // user object having an `archetype` key
        const {  user } = context

        // retrieve the auth directive argument requirements
        const requiredArgument = authDirectiveAST.arguments.find(
          (argument) => argument.name?.value === 'requires'
        )?.value

        const excludeArgument = authDirectiveAST.arguments.find(
          (argument) => argument.name?.value === 'exclude'
        )?.value

        // extract required archetype/s from argument values
        const authorizedArchetypes =
          requiredArgument?.values?.map((value) => value.value) ?? []

        if (excludeArgument) {
          const excludeArchetypes =
            excludeArgument?.values?.map((value) => value.value) ?? []
          if (excludeArchetypes.includes(user.archetype))
            return new Error('You do not have the required permissions')
        }

        return authorizedArchetypes.includes(user.archetype)
          ? true
          : new Error('You do not have the required permissions')
      },
      authDirective: 'authArchetype',
    })

Hi there, thanks for getting in touch! Unfortunately, Mercurius Auth does not currently support defining policies at the argument level, only at the field and type level (and a short-term workaround using a field-level directive for avoiding policy checks in execution logic wouldn't be type-safe).
Would you be interested in getting with potentially adding support for auth policies for inputs?


Mark new AnnotationRule finding from 0.47.0 as non correctable

Expected Behavior
https://github.com/pinterest/ktlint/blob/6265d7f7b16ced7405f3c3f83cffb2c30ada1df5/ktlint-ruleset-standard/src/main/kotlin/com/pinterest/ktlint/ruleset/standard/AnnotationRule.kt#L108-L116
Current Behavior
0.47.0 update is missing
Context
IJ plugin should not report KtLint findings which are not corrected as "auto correctable".
See https://github.com/detekt/detekt/pull/5324

@arturbosch If you are not working on, can I work on this issue?
And I have a question,
ktlint tells us whether the rule is auto-correctable or not by canBeAutoCorrected parameter in emit callback, so is it okay to solve this issue by using this value?
https://github.com/detekt/detekt/blob/e259980d88cdc0d949552ddf5971621d8ed7bba4/detekt-formatting/src/main/kotlin/io/gitlab/arturbosch/detekt/formatting/FormattingRule.kt#L115-L125
ktlint's declaration of canBeAutoCorrected parameter in emit lambda
Currently checking whether the rule is auto-correctable or not by overriden function FormattingRule::canBeCorrectedByKtLint. But I think replacing it with canBeAutoCorrected parameter in emit callback can solve this problem more consistently with ktlint. (and do not need manual synchronizing)
https://github.com/detekt/detekt/blob/561d25b8eee7123f4b10f330eac167ed2e4932a8/detekt-formatting/src/main/kotlin/io/gitlab/arturbosch/detekt/formatting/FormattingRule.kt#L74-L75
I also checked that current behaviors of FormattingRule::canBeCorrectedByKtLint in each implementation rules are exactly same as ktlint(0.47.1)'s canBeAutoCorrected parameter in emit lambda.

Oh, you are totally right. In line 92 the _ parameter can be used for this.
Yes, I introduced unnecessary complexity here :/.
@sangggg Yes, please. You can work on it.


Compressed ice interferes with natural ice-packed ice-blue ice recipe

1.20.1
The recipe for compressed ice is conflicting with the recipe to make packed ice and blue ice.
Is there a way to edit a config to disable this recipe or alter it?

Oh, i totally forgot about this one
The current solution is to use a mod that handles duplicate recipes until I fixed it
You can manually remove all ice recipes within the jar as another option

An alternative recipe could be 4x ice blocks, while the compression isn't as high, it'll still let you compress it, or alternatively a recipe for just blue ice with recipes to un-craft blue into packed and packed into regular, etc.
4x recipe could be:
##.
##.
...

With . being empty space


How can I get  3rd party / vendor packages?

Hi
I am new to this project, when I follow the build procedure in ReadMe, I find that make prepare command has no longer effects now, so how can I pull the 3rd party / vendor packages such as github.com/gorilla ?
Thank you!

Install the latest version of Go 1.11.x
Clone a repo
Do make build


Fixed issue with Keras regularizers

With latest version of Keras in Python 3.6, cannot import l1l2 and needs to be L1L2 instead.

@wilson-nunn I've been trying to get things to work for both with some utility functions but haven't finished cleaning up the examples. Use the import from keras_adversarial.legacy import l1l2. That is a function that will use l1l2 or L1L2 depending on the version of Keras installed.
I know your fix is much easier, but then I'm going to get all the Keras 1 people complaining.
Cheers

BTW, here's a link to the legacy functions:
https://github.com/bstriner/keras-adversarial/blob/master/keras_adversarial/legacy.py


Browser app crashed

System information
OS & Version: Linux
Browser & Version: Firefox
Expected behavior
The app works
Actual behavior
The app crashes
Error: h.fromChainId is undefined
    $ https://testnet.beamerbridge.com/assets/index.b1e825cf.js:488
    D6 https://testnet.beamerbridge.com/assets/vendor.832045b3.js:4
[vendor.832045b3.js:4:1162](https://testnet.beamerbridge.com/assets/vendor.832045b3.js)
    Vv https://testnet.beamerbridge.com/assets/vendor.832045b3.js:4
    fs https://testnet.beamerbridge.com/assets/vendor.832045b3.js:4
    ur https://testnet.beamerbridge.com/assets/vendor.832045b3.js:4
TypeError: h.fromChainId is undefined
    $ https://testnet.beamerbridge.com/assets/index.b1e825cf.js:488
    D6 https://testnet.beamerbridge.com/assets/vendor.832045b3.js:4
[vendor.832045b3.js:4:1162](https://testnet.beamerbridge.com/assets/vendor.832045b3.js)
    Vv https://testnet.beamerbridge.com/assets/vendor.832045b3.js:4
    fs https://testnet.beamerbridge.com/assets/vendor.832045b3.js:4
    ur https://testnet.beamerbridge.com/assets/vendor.832045b3.js:4
TypeError: h.fromChainId is undefined
    $ https://testnet.beamerbridge.com/assets/index.b1e825cf.js:488
    D6 https://testnet.beamerbridge.com/assets/vendor.832045b3.js:4
[vendor.832045b3.js:4:1162](https://testnet.beamerbridge.com/assets/vendor.832045b3.js)
    Vv https://testnet.beamerbridge.com/assets/vendor.832045b3.js:4
    fs https://testnet.beamerbridge.com/assets/vendor.832045b3.js:4
    ur https://testnet.beamerbridge.com/assets/vendor.832045b3.js:4

Steps to reproduce the behavior
Not sure! It worked for a while, but at some point it didn't. Refreshing fixed it.

@jannikluhn What do you mean with crash? Did the website freeze, or did the browser crash?

As far as I can remember, clicking buttons etc. didn't have any effect.

Not reproducable.


chore: close buffer by its underlying window, when available

the changes from #404 created problems, when https://github.com/tiagovla/scope.nvim was also used.
Closing a buffer created a new No Name buffer + window. Which screwed the window layout.
The changes address closing the buffer by its underlying window, when available.
Probably it also fixes this:
https://github.com/TimUntersberger/neogit/issues/402
https://github.com/TimUntersberger/neogit/issues/235
I tested it and the behaviour was expected. (I didn't test if this PR solved these issues)

@ten3roberts would you like to review it? :)

Looks great and thanks for the help.
I had a hunch the "close previous buffer" approach by #404 may break some other plugin.
If the other mentioned issues become fixed by this as well, that would be fantastic; only time will tell.


Turing

There is no new issue, so I just leave it blank now.

Please add reference of the issue in your comment
URL is here: https://github.com/BUPT/awesome-chatbot/issues/10

add URL into '<>' just like : <your_url>
then you can get the effect of the last comment.


move left and right

How is the graph moving left and right, but the ordinate does not move

I didn't understand the issue.
Can you please explain it a little more?


Add newline

Whoops, my bad-- thought I needed to click approve to merge but didn't see that this was the master branch, so I can't merge. I promise this wasn't intended to troll :stuck_out_tongue: now @ReaLNeroM on the other hand :laughing:


⚠ ClamAV has degraded performance

In 74490d4, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 68 ms

Resolved: ClamAV performance has improved in 475652a after 5 minutes.


Need example of how to provide a custom zone

Hi, love your work!
I'm having some issues providing a custom zone to the config, could you provide an example of how to do this?

Thanks! It's documented in the package docs, you basically need to pass an updated Config https://package.elm-lang.org/packages/n1k0/elm-daterange-picker/latest/DateRangePicker#Config
Does this help? How do you think we could improve the docs?


Unable to install

pip gives following error while installation
Could not find any downloads that satisfy the requirement html-cleaner (from django-blogs==0.2.6)
Complete log is
Downloading/unpacking git+git://github.com/ilblackdragon/django-blogs.git
Cloning git://github.com/ilblackdragon/django-blogs.git to c:\users\adnanu~1\appdata\local\temp\pip-ubcj_g-build
Running setup.py (path:c:\users\adnanu~1\appdata\local\temp\pip-ubcj_g-build\setup.py) egg_info for package from git+git://github.com/ilblackdragon/
django-blogs.git
Requirement already satisfied (use --upgrade to upgrade): django>=1.2 in c:\python27\lib\site-packages (from django-blogs==0.2.6)
Downloading/unpacking pytils (from django-blogs==0.2.6)
  Running setup.py (path:c:\users\adnanu~1\appdata\local\temp\pip_build_Adnan Umer\pytils\setup.py) egg_info for package pytils

    warning: no files found matching 'README'
Downloading/unpacking django-misc (from django-blogs==0.2.6)
  Downloading django-misc-0.1.0.zip
  Running setup.py (path:c:\users\adnanu~1\appdata\local\temp\pip_build_Adnan Umer\django-misc\setup.py) egg_info for package django-misc

Downloading/unpacking django-pagination (from django-blogs==0.2.6)
  Downloading django-pagination-1.0.7.tar.gz
  Running setup.py (path:c:\users\adnanu~1\appdata\local\temp\pip_build_Adnan Umer\django-pagination\setup.py) egg_info for package django-pagination

Downloading/unpacking django-tagging (from django-blogs==0.2.6)
  Downloading django_tagging-0.4-py2.py3-none-any.whl
Downloading/unpacking html-cleaner (from django-blogs==0.2.6)
  Could not find any downloads that satisfy the requirement html-cleaner (from django-blogs==0.2.6)
  Some externally hosted files were ignored (use --allow-external html-cleaner to allow).
Cleaning up...
No distributions at all found for html-cleaner (from django-blogs==0.2.6)
Storing debug log for failure in C:\Users\Adnan Umer\pip\pip.log

Notice that this app is not really maintained, though we still use it in our pet project and it should work.
We seem to forget to publish html-cleaner on pypi, so please install it from github:
pip install https://github.com/ProstoKSI/html-cleaner/archive/master.zip


Export encountered errors on following paths:   [The Client]

><EMAIL_ADDRESS>build
> next build

 ✓ Creating an optimized production build
 ✓ Compiled successfully

./src/components/HomeStart.tsx
20:8  Warning: React Hook useLayoutEffect has missing dependencies: 'route', 'setError', and 'setValidate'. Either include them or remove the dependency array.  react-hooks/exhaustive-deps

./src/components/LoginForm.tsx
60:8  Warning: React Hook useLayoutEffect has missing dependencies: 'route' and 'setError'. Either include them or remove the dependency array.  react-hooks/exhaustive-deps

./src/components/Porgress/ErrorBox.tsx
20:8  Warning: React Hook useEffect has a missing dependency: 'setErrorBox'. Either include it or remove the dependency array.  react-hooks/exhaustive-deps

./src/components/SingleUser.tsx
431:12  Warning: React Hook useEffect has missing dependencies: 'onAcceptCallSelfPluginReceive', 'onAcceptCallTargetPluginReceive', 'onAdminModeDisableReceive', 'onAdminModeEnableReceive', 'onDenyCallSelfPluginReceive', 'onDenyCallTargetPluginReceive', 'onDisableVoiceReceive', 'onEnableVoiceReceive', 'onEndCallSelfPluginReceive', 'onEndCallTargetPluginReceive', 'onNewPlayerLeave', 'onPendingCallEndSelfPluginReceive', 'onPendingCallEndTargetPluginReceive', 'onPlayerChangeServer', 'onPlayerInitAdminModeReceive', 'onPlayerLeaveReceivePlugin', 'onReceiveAnswer', 'onReceiveCandidate', 'onReceiveOffer', 'onSetVolumeReceive', 'onStartCallSelfPluginReceive', and 'onStartCallTargetPluginReceive'. Either include them or remove the dependency array.  react-hooks/exhaustive-deps
438:8  Warning: React Hook useEffect has a missing dependency: 'closeRTC'. Either include it or remove the dependency array.  react-hooks/exhaustive-deps
450:12  Warning: React Hook useEffect has missing dependencies: 'onPlayerChangeControlReceive' and 'onSetControlPluginReceive'. Either include them or remove the dependency array.  react-hooks/exhaustive-deps
460:8  Warning: React Hook useEffect has missing dependencies: 'stream' and 'uuid'. Either include them or remove the dependency array.  react-hooks/exhaustive-deps
544:8  Warning: React Hook useEffect has a missing dependency: 'user.uuid'. Either include it or remove the dependency array.  react-hooks/exhaustive-deps
551:8  Warning: React Hook useEffect has a missing dependency: 'user.uuid'. Either include it or remove the dependency array.  react-hooks/exhaustive-deps
565:8  Warning: React Hook useEffect has a missing dependency: 'checkPlayerCanTalk'. Either include it or remove the dependency array.  react-hooks/exhaustive-deps

./src/components/SoundControl.tsx
87:8  Warning: React Hook useEffect has a missing dependency: 'onSetControlPluginReceive'. Either include it or remove the dependency array.  react-hooks/exhaustive-deps

./src/components/StartButton.tsx
96:8  Warning: React Hook useLayoutEffect has missing dependencies: 'addIceServer', 'closeStream', 'disconnectSocket', 'removeAllOnline', 'route', 'setAdminModeAll', 'setSocket', and 'setValidate'. Either include them or remove the dependency array.  react-hooks/exhaustive-deps

./src/components/UserHead.tsx
81:8  Warning: React Hook useEffect has missing dependencies: 'isSelfMute', 'isTalk', 'socket', 'user.server', and 'user.uuid'. Either include them or remove the dependency array.  react-hooks/exhaustive-deps

./src/components/UserInfo.tsx
85:8  Warning: React Hook useEffect has missing dependencies: 'initSounds', 'setSecretKey', and 'websocketKey'. Either include them or remove the dependency array.  react-hooks/exhaustive-deps
104:8  Warning: React Hook useEffect has missing dependencies: 'onAdminModeDisableReceive', 'onAdminModeEnableReceive', 'onPauseSoundReceive', 'onPlaySoundReceive', 'onSoundSettingReceive', and 'onStopSoundReceive'. Either include them or remove the dependency array.  react-hooks/exhaustive-deps

./src/components/UserList.tsx
145:8  Warning: React Hook useEffect has missing dependencies: 'onNewPlayerLeave', 'onPlayerChangeServer', 'onPlayerJoinReceive', 'onPlayerLeaveReceivePlugin', 'onPlayerMuteReceive', 'onPlayerStartVoiceReceive', 'onPlayerUnmuteReceive', and 'onPluginDisabled'. Either include them or remove the dependency array.  react-hooks/exhaustive-deps

./src/config.ts
1:1  Warning: Assign object to a variable before exporting as module default  import/no-anonymous-default-export

./src/errorMessages.ts
1:1  Warning: Assign array to a variable before exporting as module default  import/no-anonymous-default-export

./src/sounds.ts
1:1  Warning: Assign array to a variable before exporting as module default  import/no-anonymous-default-export

info  - Need to disable some ESLint rules? Learn more here: https://nextjs.org/docs/basic-features/eslint#disabling-rules
 ✓ Linting and checking validity of types
 ✓ Collecting page data
   Generating static pages (0/8)  [=   ]TypeError [ERR_INVALID_URL]: Invalid URL
    at new NodeError (node:internal/errors:405:5)
    at new URL (node:internal/url:611:13)
    at t.default (/root/MelodyMine/web/client/.next/server/chunks/417.js:1:22142)
    at 74284 (/root/MelodyMine/web/client/.next/server/chunks/417.js:1:15077)
    at __webpack_require__ (/root/MelodyMine/web/client/.next/server/webpack-runtime.js:1:161)
    at 41978 (/root/MelodyMine/web/client/.next/server/chunks/163.js:1:638)
    at __webpack_require__ (/root/MelodyMine/web/client/.next/server/webpack-runtime.js:1:161)
    at A (/root/MelodyMine/web/client/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:35:5655)
    at R (/root/MelodyMine/web/client/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:35:4334)
    at rh (/root/MelodyMine/web/client/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:27:25718) {
  input: "https://voice.skolon.lol          # Your website's URL. 🌐",
  code: 'ERR_INVALID_URL'
}

Error occurred prerendering page "/_not-found". Read more: https://nextjs.org/docs/messages/prerender-error
TypeError [ERR_INVALID_URL]: Invalid URL
    at new NodeError (node:internal/errors:405:5)
    at new URL (node:internal/url:611:13)
    at t.default (/root/MelodyMine/web/client/.next/server/chunks/417.js:1:22142)
    at 74284 (/root/MelodyMine/web/client/.next/server/chunks/417.js:1:15077)
    at __webpack_require__ (/root/MelodyMine/web/client/.next/server/webpack-runtime.js:1:161)
    at 41978 (/root/MelodyMine/web/client/.next/server/chunks/163.js:1:638)
    at __webpack_require__ (/root/MelodyMine/web/client/.next/server/webpack-runtime.js:1:161)
    at A (/root/MelodyMine/web/client/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:35:5655)
    at R (/root/MelodyMine/web/client/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:35:4334)
    at rh (/root/MelodyMine/web/client/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:27:25718)
   Generating static pages (5/8)  [==  ]
TypeError [ERR_INVALID_URL]: Invalid URL
    at new NodeError (node:internal/errors:405:5)
    at new URL (node:internal/url:611:13)
    at t.default (/root/MelodyMine/web/client/.next/server/chunks/417.js:1:22142)
    at 74284 (/root/MelodyMine/web/client/.next/server/chunks/417.js:1:15077)
    at __webpack_require__ (/root/MelodyMine/web/client/.next/server/webpack-runtime.js:1:161)
    at 41978 (/root/MelodyMine/web/client/.next/server/chunks/163.js:1:638)
    at __webpack_require__ (/root/MelodyMine/web/client/.next/server/webpack-runtime.js:1:161)
    at A (/root/MelodyMine/web/client/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:35:5655)
    at R (/root/MelodyMine/web/client/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:35:4334)
    at rh (/root/MelodyMine/web/client/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:27:25718) {
  input: "https://voice.skolon.lol          # Your website's URL. 🌐",
  code: 'ERR_INVALID_URL'
}

Error occurred prerendering page "/hub". Read more: https://nextjs.org/docs/messages/prerender-error
TypeError [ERR_INVALID_URL]: Invalid URL
    at new NodeError (node:internal/errors:405:5)
    at new URL (node:internal/url:611:13)
    at t.default (/root/MelodyMine/web/client/.next/server/chunks/417.js:1:22142)
    at 74284 (/root/MelodyMine/web/client/.next/server/chunks/417.js:1:15077)
    at __webpack_require__ (/root/MelodyMine/web/client/.next/server/webpack-runtime.js:1:161)
    at 41978 (/root/MelodyMine/web/client/.next/server/chunks/163.js:1:638)
    at __webpack_require__ (/root/MelodyMine/web/client/.next/server/webpack-runtime.js:1:161)
    at A (/root/MelodyMine/web/client/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:35:5655)
    at R (/root/MelodyMine/web/client/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:35:4334)
    at rh (/root/MelodyMine/web/client/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:27:25718)
TypeError [ERR_INVALID_URL]: Invalid URL
    at new NodeError (node:internal/errors:405:5)
    at new URL (node:internal/url:611:13)
    at t.default (/root/MelodyMine/web/client/.next/server/chunks/417.js:1:22142)
    at 74284 (/root/MelodyMine/web/client/.next/server/chunks/417.js:1:15077)
    at __webpack_require__ (/root/MelodyMine/web/client/.next/server/webpack-runtime.js:1:161)
    at 41978 (/root/MelodyMine/web/client/.next/server/chunks/163.js:1:638)
    at __webpack_require__ (/root/MelodyMine/web/client/.next/server/webpack-runtime.js:1:161)
    at A (/root/MelodyMine/web/client/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:35:5655)
    at R (/root/MelodyMine/web/client/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:35:4334)
    at rh (/root/MelodyMine/web/client/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:27:25718) {
  input: "https://voice.skolon.lol          # Your website's URL. 🌐",
  code: 'ERR_INVALID_URL'
}

Error occurred prerendering page "/login". Read more: https://nextjs.org/docs/messages/prerender-error
TypeError [ERR_INVALID_URL]: Invalid URL
    at new NodeError (node:internal/errors:405:5)
    at new URL (node:internal/url:611:13)
    at t.default (/root/MelodyMine/web/client/.next/server/chunks/417.js:1:22142)
    at 74284 (/root/MelodyMine/web/client/.next/server/chunks/417.js:1:15077)
    at __webpack_require__ (/root/MelodyMine/web/client/.next/server/webpack-runtime.js:1:161)
    at 41978 (/root/MelodyMine/web/client/.next/server/chunks/163.js:1:638)
    at __webpack_require__ (/root/MelodyMine/web/client/.next/server/webpack-runtime.js:1:161)
    at A (/root/MelodyMine/web/client/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:35:5655)
    at R (/root/MelodyMine/web/client/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:35:4334)
    at rh (/root/MelodyMine/web/client/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:27:25718)
TypeError [ERR_INVALID_URL]: Invalid URL
    at new NodeError (node:internal/errors:405:5)
    at new URL (node:internal/url:611:13)
    at t.default (/root/MelodyMine/web/client/.next/server/chunks/417.js:1:22142)
    at 74284 (/root/MelodyMine/web/client/.next/server/chunks/417.js:1:15077)
    at __webpack_require__ (/root/MelodyMine/web/client/.next/server/webpack-runtime.js:1:161)
    at 41978 (/root/MelodyMine/web/client/.next/server/chunks/163.js:1:638)
    at __webpack_require__ (/root/MelodyMine/web/client/.next/server/webpack-runtime.js:1:161)
    at A (/root/MelodyMine/web/client/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:35:5655)
    at R (/root/MelodyMine/web/client/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:35:4334)
    at rh (/root/MelodyMine/web/client/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:27:25718) {
  input: "https://voice.skolon.lol          # Your website's URL. 🌐",
  code: 'ERR_INVALID_URL'
}

Error occurred prerendering page "/". Read more: https://nextjs.org/docs/messages/prerender-error
TypeError [ERR_INVALID_URL]: Invalid URL
    at new NodeError (node:internal/errors:405:5)
    at new URL (node:internal/url:611:13)
    at t.default (/root/MelodyMine/web/client/.next/server/chunks/417.js:1:22142)
    at 74284 (/root/MelodyMine/web/client/.next/server/chunks/417.js:1:15077)
    at __webpack_require__ (/root/MelodyMine/web/client/.next/server/webpack-runtime.js:1:161)
    at 41978 (/root/MelodyMine/web/client/.next/server/chunks/163.js:1:638)
    at __webpack_require__ (/root/MelodyMine/web/client/.next/server/webpack-runtime.js:1:161)
    at A (/root/MelodyMine/web/client/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:35:5655)
    at R (/root/MelodyMine/web/client/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js:35:4334)
 ✓ Generating static pages (8/8)

> Export encountered errors on following paths:
        /_not-found
        /hub/page: /hub
        /login/page: /login
        /page: /

Fixed it, changed all files that has pages.tsx to index.tsx


Add TraceID to logging

Brief description:
You said you could set this up for 5 min, that's why I am assigning it to you :D.
As discussed, it's a good idea to add traceID to our logs so that we can trace the operations happening when it comes to handling a request. For this to work, maybe we would need the uvicorn log entries to be in a JSON format as well when it comes to deployed environments.
How to achieve it:
I am not sure but I guess you should do your magic in this file:
https://github.com/AUBGTheHUB/monolith/blob/main/services/py-api/src/server/logger/logger_factory.py
Maybe you could get some inspiration from here, or maybe not:
https://www.w3.org/TR/trace-context/
Ti si znaesh brat.

https://www.structlog.org/en/stable/contextvars.html
This might be helpful


Fix for tar encountering existing .BUILDINFO files

This PR simply tells tar to overwite any files during extraction.  In particular, errors could pop up from .BUILDINFO files being present which would crash the bootstrap script.  Some users report libgcrypt package exhibited this behavior, but I personally saw the same behavior with the libsystemd package during installation.

PR addresses #104

PR addressed #106 and #102 as well

Sweet thanks
One line of code...
I was going to try and fix it myself but have no experience with shell


provide public hook to into element registeration progress?

 Issue by jmesserly
Tuesday Jun 10, 2014 at 18:16 GMT
Originally opened as https://github.com/Polymer/polymer-dev/issues/31

The Dart version of Polymer is monkeypatching polymer-element's register method, so it can:

scan the Dart class for relevant Polymer metadata (like the publish and Changed equivalents)
prevent document.registerElement from being called on the JavaScript side

Also, patching register allows all of the code before that to be reused, like the imports queue.js.
For the first item, registerCallback is enough and we could set that up. But the second item prevents the approach from working.

Closing this issue due to age and the release of version 1 of Polymer - please feel free to re-open if this is incorrect.


docs: split stack

Swaps out stack.md for split-stack.md and noun-rep.md

@drbeefsupreme Thanks for your response. I'll continue reviewing from where I left off after I review #60 - I think It'll be easier to gauge the documentation after I understand the exact behaviour of the code.

I'll add in some edited version of my response to make things more clear.

Some new revisions, including a much-needed diagram. Can you take another look @ashelkovnykov?

I need to put a temporary pause on this, since my work on jet cold state has made it apparent that Hamt::preserve probably shouldn't use the lightweight stack. Once that's settled I'll come back to this.

This is pretty stale, we'll revisit docs for this later.


Provide API to access and change editor tab labels

Feature Request
The Atom has the ability to customize the tabs, it's so powerful for some requirements. For example, there is an extension nice-index in Atom that could be able to rename tabs of many opened editors have same name index.js, rename them to the names of their parent folder.

It's very useful that if we could do so.
@bpasero I got it that the feature requested by #32836 will not be considered in the first half year of 2018. I think my feature request is very similar with that, so may I ask you when the ability to customize tabs in VSC would be added into the roadmap ?
I was excited when I start to think how can I implement a extension like nice-index in VSC, but after I involved in the documents about customizing a VSC extension, I just found that I can not achieve this. I hope that you could consider this feature request, thanks for all of your great works ~ 🙏

This came up for Dart too: https://github.com/Dart-Code/Dart-Code/issues/577
When a user F12's into a file from an external library, the filename is often fairly vague. It'd be nice if we could insert the packages name into the tab title text.

I just ran into the same exact issue with as the parent poster. I was having the same usability problem with duplicated index.js files, and went looking for a solution. Finding no VSC extensions that would help in the marketplace I dug into the documentation along the exact same lines as chengjianhua. I too was disappointed to find that it was not possible to update the content of the editor tabs in any way from the extension API.
I also have the same issue to a lesser extent in rust when dealing with mod.rs files.
The current functionality provided by VSC of showing the folder in a de-emphasized label is helpful, but not as helpful as it could be, as I actually care more about the folder name than the file name in these cases.
What I'd like to be able to modify through an extension is:

The text-content of the title label of the tab (index.js in the screenshot; this is the highest priority item)
The text-content of the hint label of the tab (.../SharedHeader in the screenshot; this would be a secondary priority, but I can't imagine it's that much more work than providing API access to the title label)
The icon displayed in the tab (JS in the screenshot; this is personally a low-priority for me, and I'm including it more for completeness)

Found this issue after extensive searching, and it looks like a good option for allowing being able to control the tab titles and labels.
This is a big problem in Node projects, where index.js files are all over the place. My editor often looks like this:

Alternately, if an open, extensible API is too much to consider now, I would suggest re-considering #30316, which also provides a solution to the index.js problem.

Found this issue after extensive searching, and it looks like a good option for allowing being able to control the tab titles and labels.
This is a big problem in Node projects, where index.js files are all over the place. My editor often looks like this:

Alternately, if an open, extensible API is too much to consider now, I would suggest re-considering #30316 (related to #27328), which also provides a solution to the index.js problem.
cc @bpasero @sohlex @rosyatrandom

Opening this up would also allow for things like @comerc's https://github.com/Microsoft/vscode/issues/12965#issuecomment-326016306 or @aazarkhish's issue https://github.com/Microsoft/vscode/issues/21662

Also support from @8balloon, @silesky and 5 others for the index.js use case here:
https://github.com/Microsoft/vscode/issues/12965#issuecomment-267773692

In Dart it's common go import a file like package:mypackage/somefile.dart. If you F12 into that file, the file system location is buried away in some pub cache folder somewhere and the user only sees somefile.dart. I'd love ot be able to show package:mypackage in the place of the long filesystem path (whether it's on the tab, or a tooltip).

I hope this feature gets added.  It is not uncommon for a ReactJS project to have 20+ index.* files.   I was wondering why nice-index had not been ported yet.

@bpasero  The nice-index author switched to VSCode also, & is awaiting the API ;)

That's great news. I hope they implement it soon.

Same issue for me, the best could be able to change the color and the label of a tab on right click.

If a proper API is way too difficult for now, I propose that there is an built-in mechanism that triggers specifically for index. files. https://github.com/Microsoft/vscode/issues/67974

This issue is exacerbated with folders with prefixes in them. Here I cannot tell without hovering which index.mdx is in which folder:

@bpasero (or happy to redirect to someone else responsible for the tab bar), is there any initiative to do anything about this?
Even a simple default-off option (show directory name as primary label, when there are duplicates) would be enough for a start...

Is this a duplicate of https://github.com/microsoft/vscode/issues/37414?

@johnathanz
I don't think this is a duplicate. #37414 is asking for a very specific feature be built into VSCode, while this issue is asking for an extension API.
If this issue were implemented, I imagine an extension could provide the functionality requested in #37414 without it needing to be built into VSCode.
As such, I think they are wholly distinct issues, and I would strongly urge this issue to be implemented over #37414, as it would then allow the community to address #37414.

That makes sense. Thanks for the clarification @ncallaway

This can open up a lot of possibilities. Such extension and lots of other ideas would be super helpful.

Please add this feature, I have too many index files!

Some regexp setting would be much appreciated to give perfect control to the tab name. Something like this would be perfect.
{
  "workbench.editor.labelName": {
      "match": "components/(.+?)/index\\.(.+)"
      "replaceWith": "$1.$2"
   }
}

Thanks

Any update? I desperately want that feature!

@BrightSoul Yeah, I was having this problem. If we could use regex to set labelnames, that would work great too.

I hope this feature gets added. It is not uncommon for a ReactJS project to have 20+ index.* files. I was wondering why nice-index had not been ported yet.

Yeah, for React projects instead of calling a file ComponentName/index.js I call it ComponentName/ComponentName.js to get around this very problem. It does make import paths longer, but it is a reasonable trade off to get tab labels to be meaningful.

@RobKohr that is fine for a project that you own and control, but there are many, many codebases with this convention that you will not be able to change.
So this is not a complete workaround for many use cases.

Any news on this API update?

Any news on this API update?

Please add this. 🙇

Still actual!

Well, after discovering I could "alt + [number]" to switch between tabs I didn't stop until I could make the tabs display their index.
I know this is a very niche request so after not finding any solution for this I considered making my own extension for this. Would be a perfect first extension for VSCode.
And now I stumbled upon this...
This is my vote to make the Tabs API solve all the above issues.

Hard to believe that this issue has been here for so long considering how common of an issue it is. Javascript and Rust have been mentioned above, but here is a regex off the top of my head for the types of files I regularly deal with:
\.?(ENV|index|setup|config|app|README|TODO)\.?(js|py|php|html?lmd|txt)

And those are just the ones that came to mind.
I remember dealing hundreds of index.html files with this in the late 1990's with large static site projects. Today a large vscode workspace for a node.js project can lead to many duplicate file names too.

Would love to see this implemented.
FYI for anyone else working with lots of index.js files, you can get the directory name to show up without the .../ prefix using the workbench.editor.labelFormat setting:

Well, after discovering I could "alt + [number]" to switch between tabs I didn't stop until I could make the tabs display their index.
I know this is a very niche request so after not finding any solution for this I considered making my own extension for this. Would be a perfect first extension for VSCode.
And now I stumbled upon this...
This is my vote to make the Tabs API solve all the above issues.

Crazy how we have had exactly the same experience. I wanted to make this too. I use a similar extension that displays numbered tabs in the browser and I thought someone would have definitely made this for VSCode. When I didn't find any such extension I thought to make my own because, it "would be a perfect first extension" and that's how I ended up here.
Not adding a lot to the discussion but seconding a very valid use-case.

How is this not added yet?! Working with index files is a mess even with the short label format... 😥

Still actual!!! 🤷♂

Looking forward to be able to see what files I have opened (y)

Need this badly too. In php context.

Still hoping for editor tabs API!

I would love this for my extension, Jumpy2.  I have had this functionality working in Jumpy for Atom for a long time.  Ideally I'd be looking for a way to use a decorator, and or apply some css access, so I could do some text via "content" attribute.

any updates from 2022 ??

Has there been any official stance or comment on this? This feature would really be useful.

I can't wait to have this feature. Together with the ability to sort index files first in a directory. It will be a historical moment.

It's been 4 years, how is there no news on this? xD

C'mon MS. You can do that!

Gimme

Anytime...

IMO should be easy to expose the API for changing the tab label, I would want to be able to display the tab number so I can easily switch using keyboard shortcuts.

Fair warning, the Svelte team is about to descend on this issue...

We have an open discussion (https://github.com/sveltejs/kit/discussions/5748) to rename ALL routed *.svelte files to +page.svelte and +layout.svelte and so forth, so repeated file names are going to be a big thing in Svelte.

I'm using vscode to work with GameMaker and it become unmanageable very quickly because every tab label is the same after opening some object events (Create_0.gml, Step_0.gml, Step_1.gml, Draw_2.gml...). Hopefully this feature will arrive soon to make my life easier...

I'm actually amazed after scrolling so much, not to find a message announcing implementation of this so common issue

Just finished migrating a project to ultra modern SvelteKit, with the new plus sign routing. I thought I would meet an editor tab label nightmare after the migration, but I didn't. Somehow the file tabs in vscode have the directory name of the +server.ts and +page.svelte files in a smaller, semi transparent font after the file name. And it only shows for those + route files, without cluttering other more verbosely named files.

Went to revisit this issue, thinking that I might find an explanation to what's going on here, but this issue is still unresolved. After playing around a bit, this seems to be the native behaviour of vscode when having two files open with the exact same file name. Good news for all SvelteKit folks!
However, I still hope that we'll get a proper API for accessing and changing the labels. This only solves it for cases like SvelteKit where the exact same filename is used over and over, and not like @hyunaki's case with GameMaker above. And even for SvelteKit it's a bit annoying that you don't get the directory name appended if you don't happen to have multiple +server or +page files open at once.

Please MS, would love this API, it'd be a game changer, this project has so many pointless index.ts files

Last Christmas you gave me those tabs 🎅

And the very next day, you took them away 🌨
On Sat, Nov 26, 2022 at 3:49 PM Eugene Nesvetaev @.***>
wrote:

Last Christmas you gave me those tabs 🎅
—
Reply to this email directly, view it on GitHub
https://github.com/microsoft/vscode/issues/41909#issuecomment-1328126468,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJKR5MYUM3M6WLDJCPV47LWKKHW7ANCNFSM4EMV43JQ
.
You are receiving this because you commented.Message ID:
@.***>

This year, Inhales Copium :frog:

In the meantime 2023 year started

🥲

It's incredible how helpful it will be to finally have this - hope it's still coming down the pipe.

Vote up. This feature would be very usefull!

When this gets implemented, please consider adding a parameter to openTextDocument(options?: {content: string, language: string}): [Thenable] function e.g. label: string.

@lramos15 if we were to put together a PR for this, would the best way to do that just be to send the PR? Or do you have any up-front thoughts on the API design?
This is a particularly acute problem for SvelteKit where there are a large number of +page.svelte files (https://kit.svelte.dev/docs/routing#page-page-svelte). There's currently a post on the front page of HN about SvelteKit which is overall quite positive, but the one recurring complaint people have is regarding finding +page.svelte files in VS Code, so we'd love to address it: https://news.ycombinator.com/item?id=36428525

It looks like there are multiple file extensions to one language identifier and one identifier to multiple extensions. And one extension probably can register multiple providers. But there are probably existing features that only execute one provider. Hover allows multiple, but signature help is first non-null.
@lramos15 would it make sense for this feature to utilize the first non-null tab label provided by an extension similar to signature help?

It could also possibly be an option of the Svelte extension to use emojis instead for brevity - though I find this to be less clear

I think an option for emojis or your own abbreviations would be a great feature.  As someone who tries to balance long and expressive filenames, with readability in tabs, I too am uncertain about how useful they would be to me, but I would certainly try it.

I just wanted to add that everyone which left a comment here since 2018. We'll make history when we finally get access to manipulating the tabs!
At this point this is already a race between us getting access to an API vs AI making "auto generative UI" possible where we can all edit the whole interface of vscode through voice on demand LOL 😄

I want to note that not all these features need to be added right away.  Just having the ability to access the label field of a workbench tab in extensions would be great as I'm sure the extension community could implement all extra features here, once given the ability to do so.  So many environments/frameworks would benefit greatly from this 🙏

The location that would need to be edited is here:
https://github.com/microsoft/vscode/blob/37aed2e103024d8992fe42cd95aded33db26e502/src/vs/workbench/browser/parts/editor/tabsTitleControl.ts#L1133
(This was also mentioned in one of the first comments above https://github.com/microsoft/vscode/issues/41909#issuecomment-359251523, but I wanted to share an updated permalink since the link above while still fairly relevant is to a much older version of the code)

Today the labels have a bolder name and lighter description.

The easiest way to update this would be to keep the name and description properties in tact, but change how they're populated. E.g. we could put everything in the name:

Perhaps nicer looking, but potentially not as easily scannable, would be to swap the contents of the name and description:

I kept the .../ in for now to demonstrate what it would look like with nested paths, but for files within 1 level of routes we could skip that. E.g. just show faq rather than .../faq.
If the Svelte community had a strong preference for one of these we could potentially just introduce new editor.labelFormat option rather than updating the API. If we did want to update the API, I think the easiest way would be to let extensions modify the existing label data structures with name and description rather than doing something more custom like returning arbitrary HTML.

@benmccann I prefer the later version

../search +page.svelte

@lramos15 in our investigation we found there's a second place the tab labels are displayed, which is the "Open Editors" view. I think it probably makes sense not to update "Opened Editors" because that view always shows the filename followed by full directory path - the "Editor: Label Format" setting never affects it. Given that the "Opened Editors" view cannot display different label formats today, I feel it might make the display too inconsistent if we had extensions display the labels there in a different manner, but the labels were not affected by existing settings.

Our plan right now is to PR something for this that would affect only the editor tab labels and not the "Open Editors" view. Please advise if you agree with this approach or have different thoughts.

Hi @lramos15
I'm trying to work on this, but I have some question.
Currently tab labels are calculated from editor.getName() method. While it is using private readonly name or private readonly _name variables internally in different implementations to store internally calculated value (for example value is calculated depending on opened resource via labelService)
Lets say we want ability to set custom labels for tabs. Should we interfere with editor names, or better introduce new property/method with intention to store editor tab label information.
My preference is to introduce new separate fields and do not interfere with editor.getName(). But I'm not sure

It's important that we should also be able to dynamically set any icon URI for tabs in custom editors.
A custom editor may want to change an icon arbitrarily or only be able to set an appropriate icon after analyzing the contents of the file. This should work like an override - setting it back to null should restore whichever theme icon would normally be used on the tab.
On that note, there should also be a declarative way to set the icon for custom editors on package.json, like you can set an icon (fallback) in contributed languages.
This isn't done properly even in VSCode built-in views - I can't believe views like the Settings Editor (UI) and Shortcut Editor still use a generic "file" icon instead of something like a cogwheel/wrench/etc.

Adding to the "this is a problem" discourse. These metaframeworks all using folder based routing makes us need this.
I've hacked the CSS to make the folder path on a second line. Doesn't cover every use case, but seems like an easy win especially as vertical monitor space is often easier to come by than horizontal.

Also, the custom API from this PR looks fantastic: https://github.com/microsoft/vscode/pull/197205

@wesbos I like your  two line approach. I don't think I have seen this suggestion before.
At first  I was going to reply that on notebooks computers I feel more vertically constrained. But in thinking about all of the UI issues related to these tabs,  I see you are correct. We are in fact Horizontally constrained regardless screen proportions. Even if you have a super wide screen, and the tabs plenty of space, I think stacking them like this results in a better visual grouping.
And on my desktop systems, I personally code on screens in Portrait orientation, so this would be a big win.

Any news? 🙏🏻

I can't believe views like the Settings Editor (UI) and Shortcut Editor still use a generic "file" icon instead of something like a cogwheel/wrench/etc.

It seems this is no longer the case on latest update :tada:
Does this also mean there's now an API for setting custom icons on tabs of custom editors too? :pray:

In tomorrows insiders we will support custom editor labels which can be provided with the workbench.editor.customLabels.patterns setting. This setting allows users to to provide a (glob) pattern to match with file paths and a template which defines how the label should be rendered if the pattern matches.
https://github.com/microsoft/vscode/assets/44439583/cb159b20-5fa3-4d1e-b728-453e81f95f57

@benibenj thanks so much for this! 🎉
Will patterns with negative dirname indices be supported? (counting from end, similar to the Array.prototype.at() API) Eg. ${dirname(-1)} for the last directory:
root/fileA.txt                          # dirname(-1) -> root
root/folder1/fileB.txt                  # dirname(-1) -> folder1
root/folder1/folder2/folder3/fileC.txt  # dirname(-1) -> folder3

fileD.txt                              # dirname(-1) -> '' (empty string)

Examples with other negative numbers:
root/folder1/folder2/folder3/fileC.txt  # dirname(-3) -> folder1

fileD.txt                              # dirname(-2) -> '' (empty string)

@karlhorky Negative dirname() indices are currently not supported. Would this be helpful?
Here an example to clarify how the dirname indices work:
Path: root/grandParentFolder/parentFolder/file.txt
- dirname(0) = dirname = parentFolder
- dirname(1) = grandParentFolder
- dirname(2) = root

@karlhorky Look at the example @benibenj posted. The indexes already work in the "negative" direction you're thinking of. So ${dirname} would be ContactForm

@Luke-Callaghan23 We want to see first if these settings help before adding an API as an API is a much more complex undertaking. It appeared based on the issue history that a lot of cases will be solved by this setting. It does not mean that the PR will not happen, just that it will not come until later depending on user need.

Look at the example @benibenj posted. The indexes already work in the "negative" direction you're thinking of

@lramos15 Ah great, thanks for the clarification and sorry for the noise! I missed this detail in the explanation from the screenshot (I thought it was 1-indexed) from the example.
I'll edit my posts to minimize the confusion.

@wesbos Glob patterns do not support capture groups so this is currently not possible, however, it should be pretty easy to just add multiple patterns to cover the different cases. You can accomplish your dynamic routes problem with two different entries.
Regarding API: https://github.com/microsoft/vscode/issues/41909#issuecomment-2010283035
Something we are considering is for extensions to provide common patterns for the workbench.editor.customLabels.patterns setting. This would not require any API and would be much easier for extensions to support.

Great thank you - both of those answers seem more well thought out than my suggestion - thanks a ton!

Something we are considering is for extensions to provide common patterns for the workbench.editor.customLabels.patterns setting. This would not require any API and would be much easier for extensions to support.

Can you clarify what this means? E.g. would VS Code ship with default patterns for SvelteKit, Next.js, etc.? When you say it would be easier for extensions to support, how would extensions be involved?

Is it possible to somehow have parts of the names be upper/lower cased? e.g: I have an Index.vue file in a folder called "products". Then the custom label would be products.vue. I would like to have it Products.vue instead.

I want to use this in an nx monorepo so that every filename is prefixed by the name of the app, e.g.
/apps/myapp/sub/dir/somefile.ts should be displayed as myapp: somefile.ts. Am I right to assume that this is not possible given that the indexes are counted from the end of the path and files exist at any nesting level below the app?

@chromey the current implementation does not support this. What you can do for the meantime is to an entry for each app. I can see it would make sense to better support such cases. What we could do is add support for negative indices which would allow accessing the folder names from the start of the path. Would this be helpful for you?

Thanks @benibenj, this would be helpful indeed. But the workaround you suggest is also an option for my case, given that there are only ~15 apps in the repo. Thanks again.

@chromey I'll be adding support for this as I can see it is clearly needed. I'm tracking the issue here #209619. Will however be part of next months release

Would it also be possible to support new lines? I'd love to be able to do something like https://github.com/microsoft/vscode/issues/41909#issuecomment-1875768035

@benmccann Please create a feature request for this

@benmccann Please create a feature request for this

Thank you. Done here: https://github.com/microsoft/vscode/issues/209701

Hey thanks for the effort on this issue.  It's great to see it getting added in this latest release.  I'm wondering now if there will ever be any effort/ability to work with the hint label of a tab (as in the grayed out and italicized folder name next to the label)?  As far as I can tell, the only options to modify the hint of tab label is workbench.editor.labelFormat.  For me, I'd like to be able hide the hint completely, but it still shows when: two tabs are open with the same label but have different direct parent directories.
Ideally, we could have complete control like we have with the main label through something like workbench.editor.customLabels.hintPatterns but even just having a new option in workbench.editor.labelFormat for something like "Never show hints" would be fine for my situation.  Here is an example of what I want to avoid:

Duplicate labels inside of two different folders with very long names taking up the entire space of my tab bar.

@benibenj do you think that https://github.com/microsoft/vscode/issues/209701 might be something the VS Code team is likely to address in the near future? If not, it's possible I may be able to have the Svelte team sponsor it

Hi.
Any idea what I'm missing here?
this is what I'm getting
Path: root/parentFolder/folder/file.txt
- ${dirname(0)} = ${dirname} = parentFolder
- ${dirname(1)} = root

@riungemaina that's a bug which was introduced in yesterdays insiders. Tracking in #211522

Is this no longer working in the latest VSCode insiders?  None of the old patterns are drawing for me and even using full paths won't work.
https://github.com/microsoft/vscode/assets/56779108/f82d3090-98eb-4b7e-ba87-005ba03f7379

Would be great if we were able to set custom titles not only for the file names but also the labels/hints (workbench.editor.labelFormat) – I work in a monorepo and would like to have the hint only show the sub-package the file resides in. I can sorta do that with custom format[${dirname(-3)}] ${filename}, but it doesn't look quite as nice since the package name doesn't have the same styling as the hint (smaller + greyed out text)

@Luke-Callaghan23 Relative patterns now have to include the folder name itself. This means you should change your patterns to one of the following:

*/.vscode/settings.json
_FOLDER_NAME_/.vscode/settings.json

Awesome job on this! Just tried it out on a sveltekit and Next.js project. Some questions / possible feedback:
Is there any chance to access the capture groups in the result? Do globs even have capture groups? I found a few instances that maybe it could be helpful, but I could also think maybe we just write multiple globs for these instances.
app/listings/page.tsx is a common route, and "**/app/**/page.tsx": "${dirname}.${extname}", will give me listings.tsx - perfect.
But now I want to write one for dynamic routes:
app/listings/[id]/page.tsx and app/albums/[id]/page.tsx
So in this case [id].tsx isn't a great name for the tab. In this page I want listings/[id].tsx and albums/[id].tsx
Maybe another question for this is if this tab-naming API will be made available to extensions, so the Next.js/Sveltekit Plugins can dynamically/conditionally generate the tab name (and maybe icon?)

https://github.com/microsoft/vscode/issues/223107#issuecomment-2292519067

@benibenj @lramos15 Another use case: providing a meaningful label for custom editors. In my extension I am generating CPU/memory usage profiles and storing them in the extension's storage directory (or the OS temp directory, depending) and using a custom editor to present those to the user. As such, the default label is meaningless to the user. If I were able to set the title of the custom editor, I could make that something meaningful to the user. Unfortunately setting the title property of the webview apparently has no effect. I'd prefer an API for this, maybe part of the custom editor provider, so I can provide a useful label without having to hack it into the filename.


[$500] Workspace - Invite member - Member highlights on deselect all members

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Go to settings> workspace
Create new workspace if not created
Go to members
Invite any 2 members
Click on select all check box
Deselect last selected member
Deselect second selected member

Expected Result:
Member should not be highlights
Actual Result:
Member highlights
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

Version Number: <IP_ADDRESS>
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/93399543/75dc0bd5-e066-40c2-b3fc-5bdf71e0774b
https://github.com/Expensify/App/assets/93399543/c5ed47cf-13a6-4eb6-ae8d-ec7a49295e10
Expensify/Expensify Issue URL:
Issue reported by: @gadhiyamanan
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1694422514518809
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01f0d617af5beeb293
Upwork Job ID:<PHONE_NUMBER>763894784
Last Price Increase: 2023-09-13
Automatic offers:

s77rt | Reviewer | 26724768
akamefi202 | Contributor | 26724771
gadhiyamanan | Reporter | 26724774

@Christinadobrzyn I was duplicate assigned here, so un-assigning as this doesn't need two BZ members. We are fixing this here.

Proposal
Please re-state the problem that we are trying to solve in this issue.
Member highlights on deselect all members in workspace members page.
What is the root cause of that problem?
https://github.com/Expensify/App/blob/7deca7a02a4f58bb1bb47b0689d478525558898f/src/components/SelectionList/BaseSelectionList.js#L173-L177
If the user deselects a member, selectRow function is called and the function focuses the next member in the list.
https://github.com/Expensify/App/blob/7deca7a02a4f58bb1bb47b0689d478525558898f/src/components/SelectionList/BaseSelectionList.js#L192-L200
This is implemented for selection keyboard shortcut to support continuous selection & deselection.
The code for this feature is written inside selectRow function and it will be called from selectFocusedOption.
But selectRow function is also called if the user select/deselect by click/press.
So the next member will be focused and we see current issue.
What changes do you think we should make in order to solve the problem?
https://github.com/Expensify/App/blob/4ff85db3bd2f6f30cd76a249eed82065d397f766/src/components/SelectionList/BaseSelectionList.js#L253-L259
I think we need to call onSelectRow function directly instead of calling selectRow function if the user select/deselect by click/press.
So the app will only toggle the item without moving focus to next item.
What alternative solutions did you explore? (Optional)
N/A

Proposal
Please re-state the problem that we are trying to solve in this issue.

Member highlights on deselect all members in workspace members page.

What is the root cause of that problem?

Currently, we have a logic to auto-focus on the next available item when the users click/press on the item. The logic is like below:
https://github.com/Expensify/App/blob/4ff85db3bd2f6f30cd76a249eed82065d397f766/src/components/SelectionList/BaseSelectionList.js#L170-L190
https://github.com/Expensify/App/blob/4ff85db3bd2f6f30cd76a249eed82065d397f766/src/components/SelectionList/BaseSelectionList.js#L192-L200
https://github.com/Expensify/App/blob/4ff85db3bd2f6f30cd76a249eed82065d397f766/src/components/SelectionList/BaseSelectionList.js#L288-L293
And this logic is called for both case: user select item and user deselect item, which lead to the bug: When user deselects the member, the next one is highlights

What changes do you think we should make in order to solve the problem?

In my opinion, I do not think it is a bug, just needs an improvement
The logic "Auto focus on the next available item" is only useful when the user uses the ENTER key to select/deselect the items. So we can add the condition to appy this auto-focus logic: The device are desktop/desktop-web. Like below:

 const selectRow = (item, index) => {
        // In single-selection lists we don't care about updating the focused index, because the list is closed after selecting an item
        if (canSelectMultiple && !DeviceCapabilities.canUseTouchScreen()) {
                 // Auto-focus logic
         }

        onSelectRow(item);
    };

Based on DeviceCapabilities.canUseTouchScreen(), we maybe can check if the device is desktop or not

What alternative solutions did you explore? (Optional)

Also we can just apply the auto-focus next item in case user press the ENTER key to select the items like:

 const selectRow = (item, index, isPressingEnter) => {
          if(isPressingEnterKey) { // Logic auto-focus here}
          onSelectRow(item)
}

The isPressingEnter `s default value is false. So the clicking item does not auto-focus on next available item. In the callback function to handle ENTER press -  selectFocusedOption, we will call selectRow with isPressingEnter is true

Result

First proposal: Mobile web

Screencast from 14-09-2023 12:25:47.webm

@akamefi202 Thanks for the proposal. Your RCA is correct and the solution looks good to me.
🎀 👀 🎀 C+ reviewed
Link to proposal

@DylanDylann Thanks for the proposal. Your RCA is correct. The first solution i.e. the use of DeviceCapabilities.canUseTouchScreen does not seem correct for this case (the feature is related to keyboard not touchscreen) and the second solution is a pretty much the same as the one proposed by @akamefi202.

@s77rt I think based on DeviceCapabilities.canUseTouchScreen, we can know that whether the device is desktop or not. So only desktop device can use keyboard in this case, right?

@s77rt Also my 2nd proposal is different from @akamefi202. My proposal is to check if the user is pressing ENTER key, if true, apply the auto-focus logic. @akamefi202 `s proposal just uses onSelectRow function directly instead of calling selectRow function, so there is no auto-focus logic is applied

Hey @techievivek can you take a peek at this https://github.com/Expensify/App/issues/27377#issuecomment-1719886245

@DylanDylann The !DeviceCapabilities.canUseTouchScreen() condition would be true on Web/Desktop, this won't change anything and the issue would be still reproducible on those platforms.

@s77rt why "this won't change anything and the issue would be still reproducible on those platforms."? In mobile, !DeviceCapabilities.canUseTouchScreen() will be false so the auto-focus logic is not applied based on my proposal. Please help give me more detail

Also, should we need to confirm whether the auto-focus on the item when deselecting item is intention or not @s77rt

@DylanDylann

why "this won't change anything and the issue would be still reproducible on those platforms."? In mobile, !DeviceCapabilities.canUseTouchScreen() will be false so the auto-focus logic is not applied

Right, but on Web/Desktop the issue would be still there. We need to fix the bug for all the platforms.

should we need to confirm whether the auto-focus on the item when deselecting item is intention or not

It's intentional based on the code comments

Thank you. The PR will be ready by tomorrow.

@s77rt I closed the PR.

Reached out to BZ about payment - https://expensify.slack.com/archives/C01SKUP7QR0/p1695743819720659

Follow up from the team is to do a case-by-case evaluation of the work done on the GH and PR.
@s77rt @akamefi202 @techievivek what do you think is fair payment for the work on this job/PR?

I think 50% would be fair for this case.

Sounds good! Sorry, I'm a little lost here... The job was fixed elsewhere and we can close this, right?
How's this for payouts due:
Issue Reporter: $50 @gadhiyamanan
Contributor: $250 @akamefi202
Contributor+: $250 @s77rt
Eligible for 50% #urgency bonus? N
Upwork job is here.

@s77rt @Christinadobrzyn @techievivek
Can we close this issue soon if everything is clear here?

@Christinadobrzyn Sorry I missed the question

The job was fixed elsewhere and we can close this, right?

Yes. it was fixed here https://github.com/Expensify/App/pull/27246

Thanks! Paid this out in Upwork based on https://github.com/Expensify/App/issues/27377#issuecomment-1741549948
Closing!


Provision a volume by cloning from snapshot

Is there a way to specify a volume/snapshot/pv to clone from when creating a PVC? We want to provide bulk test data to a POD on startup.

Any thoughts on adding this functionality to the plugin?

You're going to be pleasantly surprised....

Kubernetes doesn't currently support volume snapshots or clones. The good news is that supporting snapshots and creating a volume from a snapshot are currently being discussed in the the Kubernetes Storage SIG. We're watching this space and will add support once APIs and their functions finalize in Kubernetes.

(Comment from NetApp CI):
(Comment from Carl):
Any thoughts on adding this functionality to the plugin?

(Comment from NetApp CI):
(Comment from bnaylor):
You're going to be pleasantly surprised.... [edit] well, it's possible with the nDVP. I'm not sure if Trident exposes this.

(Comment from NetApp CI):
(Comment from Ardalan Kangarlou):
Kubernetes doesn't currently support volume snapshots or clones. The good news is that supporting snapshots and creating a volume from a snapshot are currently being discussed in the the Kubernetes Storage SIG. We're watching this space and will add support once APIs and their functions finalize in Kubernetes.

(Comment from NetApp CI):
(Comment from Barnacle CI ):
(Comment from NetApp CI):
(Comment from Carl):
Any thoughts on adding this functionality to the plugin?

(Comment from NetApp CI):
(Comment from Barnacle CI ):
(Comment from NetApp CI):
(Comment from bnaylor):
You're going to be pleasantly surprised.... [edit] well, it's possible with the nDVP. I'm not sure if Trident exposes this.

(Comment from NetApp CI):
(Comment from Barnacle CI ):
(Comment from NetApp CI):
(Comment from Ardalan Kangarlou):
Kubernetes doesn't currently support volume snapshots or clones. The good news is that supporting snapshots and creating a volume from a snapshot are currently being discussed in the the Kubernetes Storage SIG. We're watching this space and will add support once APIs and their functions finalize in Kubernetes.

Any updates on this?

Do we have any plans on extending the clone functionality to 'Clone from Snapshot'?
Any updates on Snapshot APIs in general in k8s?

These topics are currently being discussed by the community. Snapshots may be supported in k8s 1.12 and other volume operations like clone from snapshots are targeted for later.

Cloning from the PVC limits clones to the same namespace. Cloning either from a snapshot or an existing PV is needed to be able to clone to a different namespace.

Cloning a volume to a different namespace is currently being discussed by the community: https://github.com/erinboyd/community/blob/patch-3/contributors/design-proposals/storage/cloning.md. The manual solution is the recommended approach for now. Once Trident supports volume import (https://github.com/NetApp/trident/issues/74), Trident can manage the manually provisioned volumes.

Available in 19.07 with the CSI provisioner.


Inconform Error to UI Note

The error for inconform info should look like the other errors in the IMAP UI

Could you please specify what exactly you mean with inconform info?

@Paulpanther

Putting in an invalid character. e.g. \ in the password fields does not create a Note, but a hard exception:

Should rather be a note like the other errors


mGear: Callback Manager

OM2 callaback manager module.
To be use on synoptic and other places
Manager UI

This issue was moved to mgear-dev/mgear_core#2


Exclude 0.0 values while aggregating metrics via SUM/AVG in view mode

The result of average latency is sometimes far from actual value in Storm UI, which is due to account 0.0 values while calculating average.
While it may not be accurate when we exclude valid 0.0 (we can't determine whether the value is valid or reflecting that there's no metric recorded in time period), but it may be much better than messing up with including them.

#1221


Allow Players to Choose Custom Symbols

As a player, I would like the ability to choose my symbols (such as emojis ) instead of just the traditional X and O. This enhancement will personalize the game experience and make it more fun.
Provide an option  to select custom symbols.
@iamparas0

this issue has been assigned to someone else before


dockerfile does not work

The repo in git clone https://github.com/Electrostatics/apbs-pdb2pqr is archived and not available anymore so the dockerfile doesn't work. Would it be possible to obtain an updated dockerfile?

Thank you very much for letting me know !! I've fixed this issue by switching to an appropriate branch beforehand. The new dockerfile should be OK.


Export Android version

Hi there, great library. Thanks.
How do I export only Android version from this project?
Thanks.

Hi,
By adding the dependency to your android build.gradle file, you will only get the android version without any additional artifacts.
Thanks!


Document Story #294, Booking a room requires filling out a form

What needs to be done

[x] Create a GitHub Issue using the story template
[ ] Write acceptance tests
[x] Create UI mockups
[ ] Update documentation & design the feature
[x] Update description to include all relevant info
[x] Identify possible blockers in other stories.
[x] Communicate with the team and ask questions


Allow user provided ServiceAccount

Is your feature request related to a problem? Please describe.
Iter8 creates a ServiceAccount when it creates an experiment. See https://github.com/iter8-tools/hub/blob/main/charts/iter8/templates/_k-serviceacccount.tpl
Not all users have permission to create service accounts. A user should be able to use an existing service account.
Describe the solution you'd like
Allow users to set serviceaccount using --set serviceaccountName=<name>

When serviceaccountName is specified, we may also not want to create any RBACs using this service account (if the user cannot create service accounts, it is probably safe to assume that they will not have permissions for roles and role bindings either).

So, the options are: either specific a serviceaccountName, which will have the "right" set of permissions before the experiment is launched, or let Iter8 create it.

It seems a bit odd to ask the user to provide a service account name and then not use it for anything.

We will use the user supplied service account inside the Job/cronjob/pod template specs exactly the same way we're using the iter8-created service account inside them.
Creation of the service account alone does nothing unless it is part of the template spec.


clap_derive: support tuples as shortcut for number_of_values = N, different validators

 Issue by CreepySkeleton
Monday Mar 02, 2020 at 17:44 GMT
Originally opened as https://github.com/clap-rs/clap/issues/1717

Transferred from: TeXitoi/structopt#349
Sometimes we want to to take a fixed number of values that should always be passed together or not at all. For instance, let's take RGBA: four numbers, first three must be 0 <= N <= 255, the last must be 0 <= N <= 1.0. This can be naturally expressed via tuples:
fn validate_alpha(a: String) -> Result<f32, String> {
    let a = a.parse()?;
    if a > 1 {
        Err(format!("alpha cannot be > 0.1"))
    } else {
        Ok(a)
    }
}

#[derive(Clap)]
struct Args {
    #[clap(
        long,
        // `parse` can be extended to take multiple validators
        // `_` means default `try_from_str = FromStr::from_str`
        parse(_, _, _, try_from_str = validate_alpha)
    )]
    color: (u8, u8, u8, f32), // `number_of_values = 4`, different parsers

    pair: Option<(String, Path)> // they can also be optional
}

 Comment by CreepySkeleton
Saturday Apr 18, 2020 at 13:29 GMT

Moving it to 3.0 milestone since this would be a breaking change theoretically.


Scrollback module can violate causality

<ek> 2010-2016
<^> -6

Scrollback module sees:
<^> -6
<ek> 2010-2016

This is obviously a violation of the space-time continuum and should be fixed quickly

Closing #124 as a duplicate of this (via causality violation).

This appears to occur on any module which uses all messages to respond to input, rather than commands. So this affects regex too.

scrollback catches all messages dispatched from bot.js through the 'chan*' hook.
onMath catches all messages from bot.js through the 'msg' hook.
'msg' is always evaluated first in bot.js.
 bot.client.on('message', function(from, to, text, raw) {
    var primaryFrom = (to == bot.client.nick) ? from : to;
    bot.callModuleFn('message', [text, from, to, bot.getReply(primaryFrom), raw]);

    bot.callModuleFn('msg', [text, from, bot.getReply(primaryFrom), raw]);

    if(to == bot.client.nick) {
      bot.callModuleFn('pm', [text, from, bot.getReply(from), raw]);
    } else {
      bot.callModuleFn('chanmsg', [text, to, from, bot.getReply(to), raw]);
    }
    // ....
  });

Flipping message/msg to be evaluated last works around this... but we need a fix. Suggestions?

👍