cite keys not working

I came from Zotero 4 with the old BBT version 1.6.100 installed. I had automatic bib key generation working with [auth.auth.ea]:[year]. I updated to Zotero 5 and without uninstalling the old (zotero 4) version of BBT installed the new version 5.0.48. This just replaced the old (non-woking) entry in the extensions page. Now I cannot use [auth.auth.ea] (it is orange), but all other  JabRef cite keys work, like e.g. [auth.etal].
report ID CVNHH3WE

edit: removed part after "Also,"

One problem, one issue please (the part after "also" sounds like a different problem)

:robot: this is your friendly neighborhood build bot announcing test build 4929 ("replace all periods; fixes #816").

Try 4929. I think that will solve the issue with the citekey pattern.

Great, test build 4929 fixed the [auth.auth.ea] issue. I will open a new issue for the part after the "also,"


fix: call .join on stdin chunks array using empty string separator

The correct way to specify no separator is to use the empty string.
See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/join.
Issue addressed: https://github.com/larsgw/sync-fetch/issues/6
I didn't write a test case as this is a clear bug and the likelihood of regression would seem to be low, but I can write one if that would be desirable.

Thank you, I will take a proper look later this week.


A Fabulous DataGrid Is Necessary

I was unable to find a Fabulous DataGrid view component. Xamarin itself has one, namely Xamarin.Forms.DataGrid for incorporation but it may be easier to adapted an existing Elmish DataGrid, such as editablegrid writing in Javascript, to the Fabulous Elmish architecture. I have not yet looked at either code base nor am I familiar with the architecture of either or Fabulous itself. Am I missing something?

Non issue. There is View.TableView with View.EntryCell and View.SwitchCell.


Folder

Hi where can i find the installation folder of elasticsearch and kibana on the ubuntu system. I only can see the configuration files and docker files. I am looking for the bin\elasticsearch-plugin folder ?

We don't build these images ourselves, we use the official images built upstream. The links to the corresponding repos are referenced at the very top of the README.
Closing because this is not an issue.


Fix failing UI tests

User Story
As a node operator I want to be certain that the code that I am running is well tested. Therefore all written tests must pass.
Description

Requirements
See #316. Implement removal/fixing of test.
Blocked by
#316
Acceptance criteria
Scenario: Situation of use case
Given: I run the UI test suite
Then: All tests pass

All tests now pass. The following fixes were done:

Tests which required a lot of effort to be fixed and which bring little to no value were removed.
Tests that cannot be fixed for the time being because we need to integrate with the API were removed or modified slightly for the time being. The reason being is that these tests still need to be re-written, so for the time being they are not needed and/or their scope should not be expanded.
For unstable screenshot tests we are now using SpecPage and not E2EPage which looks to be more stable.
Changes in mocked variables.


Introduce ledger-tool simulate-block-production

Problem
Even while https://github.com/solana-labs/solana/pull/29196 has landed and has been enabled for a while, there's no code to actually simulate the block production.
Summary of Changes
Finally, introduce the functionality called agave-ledger-tool simulate-block-production with following flags:
$ agave-ledger-tool simulate-block-production --help
...
        --first-simulated-slot <SLOT>
            Start simulation at the given slot
        --no-block-cost-limits
            Sets block cost limits to the max
        --block-production-method <METHOD>
            Switch transaction scheduling method for producing ledger entries [default: central-scheduler] [possible
            values: thread-local-multi-iterator, central-scheduler]

On top of it, this pr also makes it possible to replay the simulated blocks later by persisting the shreds into the blockstore and adjusting the replay code-path a bit. Namely, the following flags are added:
$ agave-ledger-tool verify --help
...
OPTIONS:
        --abort-on-invalid-block
            Exits with failed status early as soon as any bad block is detected
        --no-block-cost-limits
            Sets block cost limits to the max
        --enable-hash-overrides
            Enable to override blockhashes and bank hashes from banking trace event files to correctly verify blocks
            produced by the simulate-block-production subcommand

(bike-shedding is welcome, btw...)
This pr is extracted from https://github.com/anza-xyz/agave/pull/2325
sample output (with the mainnet-beta ledger)
notice that (bank) hashes and last_blockhashes are overidden while account_delta (hashes) are different.
While, tx counts largely differ from the actual log, both runs of simulation exhibits similar numbers, indicating rather stability of simulation.
The difference between simulation and reality is due to other general system loads, probably.
simulated log (1):
[2024-08-25T14:58:26.916751963Z INFO  solana_runtime::bank] bank frozen: 282254384 hash: DVkbZUJLMGHVat1GNdT4NT6qebSPH3uxiGa5hU7QSvZU accounts_delta: GajSceKAeDuAhCnRyXbv7qUsiEwdseJ1ebWDF7wyhWSg signature_count: 579 last_blockhash: A1FHFc8grbbS2zyc7a1byuU6VXUQHqsRpdydBhQM5ACx capitalization:<PHONE_NUMBER>81619111, stats: BankHashStats { num_updated_accounts: 2579, num_removed_accounts: 14, num_lamports_stored:<PHONE_NUMBER>30348, total_data_len: 9421212, num_executable_accounts: 0 }
[2024-08-25T14:58:27.270576266Z INFO  solana_runtime::bank] bank frozen: 282254385 hash: 4SpPMwTNNAfR6quW73NKqx7CRfbSoGyQMTeARez2Hftw accounts_delta: 4QfWEXTJUFr1kV6ET3tnYENppQv2BeAGNA1grDRpfPv4 signature_count: 1750 last_blockhash: 8FHhFcs4pgXEHvKohswtNPcx9KHvr8k6VEsunsRT9M6t capitalization:<PHONE_NUMBER>74886442, stats: BankHashStats { num_updated_accounts: 4964, num_removed_accounts: 2, num_lamports_stored:<PHONE_NUMBER>35707, total_data_len: 17010726, num_executable_accounts: 0 }
[2024-08-25T14:58:27.623465240Z INFO  solana_runtime::bank] bank frozen: 282254386 hash: HMtfZUB9Wgdw12c4adk17cGce13dSeaJgUsTc3mGpDKL accounts_delta: 74GUrNzB2M4ufASPBJdB65ZKPimA84AhPR8u1sjSAA94 signature_count: 1369 last_blockhash: 7xUVmhDbeVPxA4Gu5TKLd2qWU6L47MzRGxfMVwAWSQMg capitalization:<PHONE_NUMBER>70831246, stats: BankHashStats { num_updated_accounts: 3991, num_removed_accounts: 7, num_lamports_stored:<PHONE_NUMBER>098157, total_data_len: 7028676, num_executable_accounts: 0 }
[2024-08-25T14:58:27.978300836Z INFO  solana_runtime::bank] bank frozen: 282254387 hash: 5UgDevAtVTUJZD9cjrAbpUPzdwtFPxxhiQM2sQ5L6EeW accounts_delta: D5eLRBxyYYNy6nGB3TrDtwmx6BkKjvy2diUBvMbM9zfi signature_count: 754 last_blockhash: En8erpgtuHcK3rEQA7i1JFcJB5AUjPpz57gHh5vHUgmr capitalization:<PHONE_NUMBER>67526926, stats: BankHashStats { num_updated_accounts: 2766, num_removed_accounts: 2, num_lamports_stored:<PHONE_NUMBER>38403, total_data_len: 9649857, num_executable_accounts: 0 }

simulated log (2):
[2024-08-26T06:21:39.116746518Z INFO  solana_runtime::bank] bank frozen: 282254384 hash: DVkbZUJLMGHVat1GNdT4NT6qebSPH3uxiGa5hU7QSvZU accounts_delta: 3WdvevVPam6vYSY9MRDY25ThdkryjLkmxYi2HLxtPPDT signature_count: 690 last_blockhash: A1FHFc8grbbS2zyc7a1byuU6VXUQHqsRpdydBhQM5ACx capitalization:<PHONE_NUMBER>80834700, stats: BankHashStats { num_updated_accounts: 2878, num_removed_accounts: 22, num_lamports_stored:<PHONE_NUMBER>383965, total_data_len: 15984345, num_executable_accounts: 0 }
[2024-08-26T06:21:39.472078453Z INFO  solana_runtime::bank] bank frozen: 282254385 hash: 4SpPMwTNNAfR6quW73NKqx7CRfbSoGyQMTeARez2Hftw accounts_delta: GVDVyi9BdVjJiXdDUCgrYpBkAJ5ZZSXoKi89z6a8No2w signature_count: 1783 last_blockhash: 8FHhFcs4pgXEHvKohswtNPcx9KHvr8k6VEsunsRT9M6t capitalization:<PHONE_NUMBER>74005189, stats: BankHashStats { num_updated_accounts: 4915, num_removed_accounts: 1, num_lamports_stored:<PHONE_NUMBER>828027, total_data_len: 15620129, num_executable_accounts: 0 }
[2024-08-26T06:21:39.827448111Z INFO  solana_runtime::bank] bank frozen: 282254386 hash: HMtfZUB9Wgdw12c4adk17cGce13dSeaJgUsTc3mGpDKL accounts_delta: JCJB95BFo69Rk3VZRF9GL4P6JYqRWoFKbT4ngmUVWPKj signature_count: 1352 last_blockhash: 7xUVmhDbeVPxA4Gu5TKLd2qWU6L47MzRGxfMVwAWSQMg capitalization:<PHONE_NUMBER>70362548, stats: BankHashStats { num_updated_accounts: 3872, num_removed_accounts: 2, num_lamports_stored:<PHONE_NUMBER>38402, total_data_len: 5976282, num_executable_accounts: 0 }
[2024-08-26T06:21:40.178714212Z INFO  solana_runtime::bank] bank frozen: 282254387 hash: CsCFYPXXcc9h6BwCeAcsgbpsbBp9kH7RLovFzGapzkZS accounts_delta: 7tM6MrmVEGMyMtxuycSgdnJDpoVGJfgiRkvcKJRGxzpF signature_count: 721 last_blockhash: B1NvabLf172iriwSxC6pt3fDxRVMgGZYTqWqqA37BAtT capitalization:<PHONE_NUMBER>66863144, stats: BankHashStats { num_updated_accounts: 2759, num_removed_accounts: 2, num_lamports_stored:<PHONE_NUMBER>44990, total_data_len: 7714591, num_executable_accounts: 0 }

actual log:
[2024-08-08T05:03:37.833306644Z INFO  solana_runtime::bank] bank frozen: 282254384 hash: DVkbZUJLMGHVat1GNdT4NT6qebSPH3uxiGa5hU7QSvZU accounts_delta: 4eR6tY1RbhjxW56qNnjbfyWgXUR78JggjH5WVo6cBt3v signature_count: 1797 last_blockhash: A1FHFc8grbbS2zyc7a1byuU6VXUQHqsRpdydBhQM5ACx capitalization:<PHONE_NUMBER>57110608, stats: BankHashStats { num_updated_accounts: 5197, num_removed_accounts: 40, num_lamports_stored:<PHONE_NUMBER>73795, total_data_len: 16030729, num_executable_accounts: 0 }
[2024-08-08T05:03:38.225493056Z INFO  solana_runtime::bank] bank frozen: 282254385 hash: 4SpPMwTNNAfR6quW73NKqx7CRfbSoGyQMTeARez2Hftw accounts_delta: EhXCEyiWG8RV7zQv2nsxm5dFimKMY4TYuA64y1GgxUcb signature_count: 1664 last_blockhash: 8FHhFcs4pgXEHvKohswtNPcx9KHvr8k6VEsunsRT9M6t capitalization:<PHONE_NUMBER>33852687, stats: BankHashStats { num_updated_accounts: 5102, num_removed_accounts: 33, num_lamports_stored:<PHONE_NUMBER>573347, total_data_len: 23738722, num_executable_accounts: 0 }
[2024-08-08T05:03:38.620202820Z INFO  solana_runtime::bank] bank frozen: 282254386 hash: HMtfZUB9Wgdw12c4adk17cGce13dSeaJgUsTc3mGpDKL accounts_delta: rEFqYUdJvPLeNUF7nDjpxpP7jBJ6SjHmp5XAKq7vpTf signature_count: 1366 last_blockhash: 7xUVmhDbeVPxA4Gu5TKLd2qWU6L47MzRGxfMVwAWSQMg capitalization:<PHONE_NUMBER>25660471, stats: BankHashStats { num_updated_accounts: 4631, num_removed_accounts: 16, num_lamports_stored:<PHONE_NUMBER>149105, total_data_len: 27580121, num_executable_accounts: 1 }
[2024-08-08T05:03:39.028377595Z INFO  solana_runtime::bank] bank frozen: 282254387 hash: ET4eF1A1hQQgGdC2ZKddxLSeSFdMPFqSrFKn5Ly2kLep accounts_delta: BNJuXeiw2AyefF8dc8guaV9FEuxyddUWRzvw8zV7GDj2 signature_count: 1163 last_blockhash: GZE8MzgEgyekrTVrKExNbh2xnoMjM7Bi7PNSb92MXqsF capitalization:<PHONE_NUMBER>10318235, stats: BankHashStats { num_updated_accounts: 4300, num_removed_accounts: 25, num_lamports_stored:<PHONE_NUMBER>772107, total_data_len: 28823937, num_executable_accounts: 0 }

sample output:
[2024-08-25T14:58:26.916751963Z INFO  solana_runtime::bank] bank frozen: 282254384 hash: DVkbZUJLMGHVat1GNdT4NT6qebSPH3uxiGa5hU7QSvZU accounts_delta: GajSceKAeDuAhCnRyXbv7qUsiEwdseJ1ebWDF7wyhWSg signature_count: 579 last_blockhash: A1FHFc8grbbS2zyc7a1byuU6VXUQHqsRpdydBhQM5ACx capitalization:<PHONE_NUMBER>81619111, stats: BankHashStats { num_updated_accounts: 2579, num_removed_accounts: 14, num_lamports_stored:<PHONE_NUMBER>30348, total_data_len: 9421212, num_executable_accounts: 0 }
[2024-08-25T14:58:27.270576266Z INFO  solana_runtime::bank] bank frozen: 282254385 hash: 4SpPMwTNNAfR6quW73NKqx7CRfbSoGyQMTeARez2Hftw accounts_delta: 4QfWEXTJUFr1kV6ET3tnYENppQv2BeAGNA1grDRpfPv4 signature_count: 1750 last_blockhash: 8FHhFcs4pgXEHvKohswtNPcx9KHvr8k6VEsunsRT9M6t capitalization:<PHONE_NUMBER>74886442, stats: BankHashStats { num_updated_accounts: 4964, num_removed_accounts: 2, num_lamports_stored:<PHONE_NUMBER>35707, total_data_len: 17010726, num_executable_accounts: 0 }
[2024-08-25T14:58:27.623465240Z INFO  solana_runtime::bank] bank frozen: 282254386 hash: HMtfZUB9Wgdw12c4adk17cGce13dSeaJgUsTc3mGpDKL accounts_delta: 74GUrNzB2M4ufASPBJdB65ZKPimA84AhPR8u1sjSAA94 signature_count: 1369 last_blockhash: 7xUVmhDbeVPxA4Gu5TKLd2qWU6L47MzRGxfMVwAWSQMg capitalization:<PHONE_NUMBER>70831246, stats: BankHashStats { num_updated_accounts: 3991, num_removed_accounts: 7, num_lamports_stored:<PHONE_NUMBER>098157, total_data_len: 7028676, num_executable_accounts: 0 }
[2024-08-25T14:58:27.978300836Z INFO  solana_runtime::bank] bank frozen: 282254387 hash: 5UgDevAtVTUJZD9cjrAbpUPzdwtFPxxhiQM2sQ5L6EeW accounts_delta: D5eLRBxyYYNy6nGB3TrDtwmx6BkKjvy2diUBvMbM9zfi signature_count: 754 last_blockhash: En8erpgtuHcK3rEQA7i1JFcJB5AUjPpz57gHh5vHUgmr capitalization:<PHONE_NUMBER>67526926, stats: BankHashStats { num_updated_accounts: 2766, num_removed_accounts: 2, num_lamports_stored:<PHONE_NUMBER>38403, total_data_len: 9649857, num_executable_accounts: 0 }

@ryoqun The figures in this comment https://github.com/anza-xyz/agave/pull/2733#issuecomment-2309966327 raised a few questions for me

How do these schedulers compare if we give equal number of worker theads for all impls. The unified scheduler seems to have more than double the threads, what if we also give it 4?
it definitely seems the unified scheduler does a better job of parallelism due to the lack of batching, as well as its' aggressive approach towards parallelism. I'm curious how this might affect fee-collection done by the leader. Certainly we can process many non-contentious transactions, but those will use our blockspace more quickly and potentially use up blockspace that more valuable (greedy leader maximizing per-cu rewards) transactions that are currently blocked.

I think these questions are outside the scope of this PR - so maybe we do not focus on them here. Instead, I would like to ask about inspection of the simulated blocks:
Are simulated blocks saved to blockstore? Is it possible for us to save them to a "separate" blockstore or parameterize it in some way? Ideally we could run simulation for several scheduler implementations, configurations, etc, and then run some analysis on the blocks produced after the fact so that we can compare them all.
Basically it'd be really nice to add some block analysis stuff in ledger-tool, and then run that command in a bash loop to get some metrics about block "quality":

CU fullness
CU max depth
rewards
parallelism

@ryoqun The figures in this comment #2733 (comment) raised a few questions for me

How do these schedulers compare if we give equal number of worker theads for all impls. The unified scheduler seems to have more than double the threads, what if we also give it 4?

yeah, i forgot to align the thread counts... I'll do in-depth comparison later. unified scheduler takes longer to clear the buffer when the thread count is very low like 4. that said, it scales well to saturate all of worker threads. here's a sample:

also, now that unified scheduler is enabled for block verification, i think we should increase banking thread count to like 12-16.

it definitely seems the unified scheduler does a better job of parallelism due to the lack of batching, as well as its' aggressive approach towards parallelism. I'm curious how this might affect fee-collection done by the leader. Certainly we can process many non-contentious transactions, but those will use our blockspace more quickly and potentially use up blockspace that more valuable (greedy leader maximizing per-cu rewards) transactions that are currently blocked.

indeed unified scheduler can't get rid of the curse of unbatched overhead, but i think it can be optimized for the greedy-leader-maximizing per-cu rewards. Currently, all non-contentious transactions are directly buffered to crossbeam channels with unbounded buffer depth in the unified scheduler as you know. but, I'm planning to place a priority queue for the freely-reorderable transactions in front of them at the scheduler thread side, while maintaining max of 1.5 * handler_thread_count of tasks are buffered by the crossbeam channels. In this way, higher-paying task reprioritization latency is about 1.5 * avg execution time of single transaction.

I think these questions are outside the scope of this PR

:+1: anyway, i put some thought above.

so maybe we do not focus on them here. Instead, I would like to ask about inspection of the simulated blocks:

Are simulated blocks saved to blockstore?

yes.

Is it possible for us to save them to a "separate" blockstore or parameterize it in some way? Ideally we could run simulation for several scheduler implementations, configurations, etc, and then run some analysis on the blocks produced after the fact so that we can compare them all.
Basically it'd be really nice to add some block analysis stuff in ledger-tool, and then run that command in a bash loop to get some metrics about block "quality":
* CU fullness

* CU max depth

* rewards

* parallelism

yeah, we can do this easily.

@apfitzge thanks for all the effort of code-reviewing. sans the general clean up of banking_simulation.rs, I think i've addressed all comments. I'm planning to do the clean up tomorrow.

@ryoqun think my main thing left was the clean up of that file - just tag me when its cleaned up and I'll do another round of review!

@ryoqun think my main thing left was the clean up of that file - just tag me when its cleaned up and I'll do another round of review!

@apfitzge I'm done with cleaning up and bed time! thanks for review in advance...

@apfitzge thanks for all the careful reviews. i think this pr is ready for another round of code-review.

will take final pass tomorrow, seems only minor comments from me now

thanks!

Ok, apologies on the delay for getting back; took a more thorough look today.

thanks for the in-depth review. I think I've replied to all or pushed commits. So, re-requesting code review.

I still didn't dive super deep on the simulator code, but I'm happy to defer that to Andrew & others

:ok:

@steviez thanks for 2nd-round of code-review. I think I've replied to all or pushed commits again. So, re-re-requesting code review. Hopefully, i can merge this pr soon...

fate of 1.4k lines of pr. ;)
I was forced to rebase this pr onto #2172


Using Maptiler for style of the map crash the app after warning

Since I can't get map and Street style to work in my project, so now I use Maptiler style instead. I had the same issue as #1840. Maptiler style has support for Mapbox, so this workaround works until I encounter this warning message in the iOS Simulator and then the app will crash every time the view is loaded.
Mapbox warning [event]:ParseStyle [code]:-1 [message]:source must have tiles {"filePath": "virtual bool mbgl::MGLCoreLoggingObserver::onRecord(mbgl::EventSeverity, mbgl::Event, int64_t, const std::string &)", "level": "warning", "line": 27, "message": "[event]:ParseStyle [code]:-1 [message]:source must have tiles"}

I have cleared the cache deintegrate pods, and install pods again etc.
I have added hasFinishedLoadingStyle to see if that fix the problem and then apply the Camera and MapView:
 <MapboxGL.MapView
            ref={(c) => (this._map = c)}
            onLongPress={() => SheetManager.show(`map-${id}`)}
            style={style.maps}
            styleURL={`https://api.maptiler.com/maps/streets/style.json?key=${MAPTILER_TOKEN}`}
            logoEnabled={false}
            compassEnabled={false}
            pitchEnabled={false}
            onDidFinishLoadingMap={() => this.onDidFinishLoadingStyle()}>
            {this.state.hasFinishedLoadingStyle ? (
              <>
                <MapboxGL.Camera
                  animationDuration={1000}
                  animationMode={'linearTo'}
                  zoomLevel={14}
                  centerCoordinate={currentLocation}
                />
                <MapboxGL.MarkerView id={'marker'} coordinate={currentLocation}>
                  <View>
                    <View style={style.markerContainer}>
                      <View style={style.textContainer}>
                        <Text style={style.text}>{'Samling'}</Text>
                      </View>
                      <MapboxGL.PointAnnotation
                        id={'makerPoint'}
                        coordinate={currentLocation}
                      />
                      <Image
                        source={MapBikeWhiteUnselect}
                        style={{
                          width: 42,
                          height: 52,
                          backgroundColor: 'transparent',
                          resizeMode: 'cover',
                        }}
                      />
                    </View>
                  </View>
                </MapboxGL.MarkerView>
              </>
            ) : null}
          </MapboxGL.MapView>

Is there a way to use the setLogCallbackto ignore the messages to avoid the app to crash?

@gustaflindqvist this is a warning not a crash, and yes you can use setLogCallback to mute this warning. Just return true so rnmapbox will not process the log any further. See https://github.com/rnmapbox/maps/blob/main/docs/Logger.md#setlogcallbacklogcallback

@gustaflindqvist I couldn't tell from your original question, but did you solve the issue with the View crashing? I have styleURL working on first render but crashes anytime View is re-rendered.

@gustaflindqvist I couldn't tell from your original question, but did you solve the issue with the View crashing? I have styleURL working on first render but crashes anytime View is re-rendered.

Yeah, I removed the onDidFinishLoadingMap event and the boolean hasFinishedLoadingStyle I had as check. Got a invisible exception crashing the app from the lower levels, I guess.

interesting... I'm not using onDidFinishLoadingMap nor hasFinishedLoadingStyle, but still getting a crash whenever MapView re-renders. Do you randomly have any insight here?
 <View style={styles.page}>
        <View style={styles.container}>
          <SettingsToggle />
          <MyLocation />
          <MapView
            style={styles.map}
            scaleBarEnabled={false}
            attributionPosition={{
              bottom: 50,
              left: 5,
            }}
            compassViewPosition={0}
            logoEnabled={false}
            styleURL={activeBasemap}
          >
            <UserLocation
              visible={true}
              showsUserHeadingIndicator={true}
              onUpdate={(location) => drawRoute(location)}
            />
            {terrainStatus && (
              <RasterDemSource
                id="mapbox-dem-2"
                url="mapbox://mapbox.mapbox-terrain-dem-v1"
                tileSize={514}
                maxZoomLevel={22}
              >
                <Terrain />
              </RasterDemSource>
            )}

            <Camera
              centerCoordinate={[
                currentLocation.longitude,
                currentLocation.latitude,
              ]}
              zoomLevel={14}
              followUserLocation={followStatus}
              followPitch={cameraPitchStatus ? 45 : 0}
              followZoomLevel={17}
              followUserMode={trackUpStatus ? "course" : "normal"}
              animationMode={"flyTo"}
            />
            <RouteLines />
          </MapView>
        </View>
      </View>
      <RecordSheet />
    </>

to future readers: this issue was caused from using LineGradient in my LineLayer component.

to future readers: this issue was caused from using LineGradient in my LineLayer component.

@jjrise Might also be good to check is app has permission before using <UserLocation />. Found this solution: https://github.com/rnmapbox/maps/issues/233#issuecomment-522237807


Check types at do pattern reassignment

I was mildly surprised that this works as is even with patterns such as  (_, vs), but  ensure_type_of% seems lenient enough about that. Do you see any other problematic cases?
Fixes #1206 via the same mechanism as for non-pattern reassignments: the use of the pattern variables in ensure_type_of%.

Thinking a little more about this, it would probably be more robust to put separate ensure_type_of%s after the bindings, in the let body.

Thinking a little more about this, it would probably be more robust to put separate ensure_type_of%s after the bindings, in the let body.

Which is not straightforward without extending ensure_type_of%. So we decided to keep the current version of the PR; just don't use inaccessible patterns or something in a reassignment...


Add minimal love example.

Hopefully fixes #2.

@flamendless approves!
https://discord.com/channels/329400828920070144/330089431379869708/961274246967984179


 Getting error after first launch.
To Reproduce

Install prism globally "npm install -g @stoplight/prism-cli"
Run this CLI command 'prism'
See error

Expected behavior
Display prism command options
Error :

C:\Users\user\AppData\Roaming\npm\node_modules@stoplight\prism-cli\node_modules\parse-json\index.js:31
throw jsonErr;
^
<EMAIL_ADDRESS>in ..\package.jsonxpected token < in JSON at position 557 while parsing near '...evDependencies": {
at module.exports (C:\Users\user\AppData\Roaming\npm\node_modules@stoplight\prism-cli\node_modules\parse-json\index.js:26:19)
at parse (C:\Users\user\AppData\Roaming\npm\node_modules@stoplight\prism-cli\node_modules\load-json-file\index.js:8:29)
at Function.module.exports.sync (C:\Users\user\AppData\Roaming\npm\node_modules@stoplight\prism-cli\node_modules\load-json-file\index.js:11:29)
at Function.sync (C:\Users\user\AppData\Roaming\npm\node_modules@stoplight\prism-cli\node_modules\pkg-conf\index.js:52:27)
at Signale.get packageConfiguration [as packageConfiguration] (C:\Users\user\AppData\Roaming\npm\node_modules@stoplight\prism-cli\node_modules\signale\signale.js:81:20)
at new Signale (C:\Users\user\AppData\Roaming\npm\node_modules@stoplight\prism-cli\node_modules\signale\signale.js:20:39)
at Object. (C:\Users\user\AppData\Roaming\npm\node_modules@stoplight\prism-cli\node_modules\signale\index.js:4:32)
at Module._compile (internal/modules/cjs/loader.js:776:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
at Module.load (internal/modules/cjs/loader.js:643:32) {
name: 'JSONError',
fileName: '..\package.json'
}

Environment (remove any that are not applicable):

Library version: 3.0.3
OS:  Windows 10
Node:  v12.6.0

Very strange, I just ran this and didn't get the issue. I think, maybe, some HTML crept into a file download on your end somewhere. Maybe a corporate proxy, or some other middleman:

<EMAIL_ADDRESS>in ..\package.jsonxpected token < in JSON at position 557 while parsing near '...evDependencies": {

This could have been a one-off, did you try again?
If it happens again, is it the same file, or a different one?
Can you phone tether or get on a different network?
Anything you can do to help debug this would be handy.
If problems are still happening can you try another installation method?

I am using Git-bash to run it, in fact I could run prism normally when I opened the bash from my desktop, when I run it directly from the folder where my .yaml is I get the same error.

So you have git bash, and it fails there.
Running normal bash, you can install just fine?
Then... something else causes an error? Could you elaborate on that part?

Same issue with PowerShell

I found something interesting, I got the issue when am inside a folder where there is a node_modules folder on it hierarchy.

Did you get any further on this? Do you have the same problem installing other global NPM packages in those same folders, like maybe npm i -g gatsby-cli or something?
If you discover the solution please report back and close the issue. I get the sense that it's not us.

Yes I could call the global NPM pachakges such as vue eslint and angular cli...
But A simple restart solved the issue :|


Xamarin Live Reloading throwing Error : Device disconnected: Android phone, Android SDK built for x86 Google 8.1.0 (emulator)

Xamarin Live Reloading throwing Error : Device disconnected: Android phone, Android SDK built for x86 Google 8.1.0 (emulator)
Log
Starting local MQTT server on port 1883
Started local MQTT server on port 1883
Connected to localhost:1883
Connected to localhost:1883
Connected to localhost:1883
Connected to localhost:1883
Connected to localhost:1883
Connected to localhost:1883
Device disconnected: Android phone, Android SDK built for x86 Google 8.1.0 (emulator)

Hi @HarshChaurasia
Live Reload is currently in preview, and is definitely still supported and being worked on (it was only introduced last month).
I'll hand you over to @pierceboggan who may be able to help.

Could you please report the issue via the "Send Feedback" in Visual Studio for tracking and follow-up?
Thanks!


How to include it as commonjs module in nodejs ?

@sagarrayudu Multiple loading methods are supported depending on your environment. There's support for CommonJS but this issues list is for bugs only unfortunately. You might have better luck at something like Stack Overflow :)


Actor Tasks

Implementation of actor tasks.
Fixes #7.

@thedrow  It looks like there are two potential solutions to making ActorStartedState.healthy parallel to foo_task↦running

all of foo_task is made a substate of started instead of being a top-level state of the root level state machine.
ActorStartedState.healthy is pulled into foo_task as a substate of running so that running is itself a parallel state with ActorStartedState.healthy and foo_task↦running.

The second option would look something like this:
INFO:transitions.extensions.asyncio:Finished processing state started exit callbacks.
INFO:transitions.extensions.asyncio:Finished processing state foo_task enter callbacks.
INFO:transitions.extensions.asyncio:Finished processing state foo_task↦initialized enter callbacks.
INFO:transitions.extensions.asyncio:Finished processing state foo_task↦initialized exit callbacks.
INFO:transitions.extensions.asyncio:Finished processing state foo_task↦running enter callbacks.
INFO:transitions.extensions.asyncio:Finished processing state foo_task↦running↦healthy enter callbacks.
INFO:transitions.extensions.asyncio:Finished processing state foo_task↦running↦running enter callbacks.
> my_actor.state=[<ActorStartedState.healthy: 1>, <TaskState.running: 2>]

Option two is easier to achieve with the current PR (albeit, probably need some cleanup on the double naming of running, but this at least shows the idea):
    def __set_name__(self, owner, name):
        ...
        healthy = state_machine.get_state(ActorStartedState.healthy)
        self.running_state.add_substate(healthy)
        self.running_state.add_substate(NestedAsyncState(TaskState.running))
        self.running_state.initial = [ActorStartedState.healthy, TaskState.running]

Option one requires a little more work to rearrange the task_state.  I guess the question is whether healthy must be a substate of started, or if we can simply have assert ActorStartedState.healthy in my_actor.state.

@thedrow  It looks like there are two potential solutions to making ActorStartedState.healthy parallel to foo_task↦running

all of foo_task is made a substate of started instead of being a top-level state of the root level state machine.
ActorStartedState.healthy is pulled into foo_task as a substate of running so that running is itself a parallel state with ActorStartedState.healthy and foo_task↦running.

The second option would look something like this:
INFO:transitions.extensions.asyncio:Finished processing state started exit callbacks.
INFO:transitions.extensions.asyncio:Finished processing state foo_task enter callbacks.
INFO:transitions.extensions.asyncio:Finished processing state foo_task↦initialized enter callbacks.
INFO:transitions.extensions.asyncio:Finished processing state foo_task↦initialized exit callbacks.
INFO:transitions.extensions.asyncio:Finished processing state foo_task↦running enter callbacks.
INFO:transitions.extensions.asyncio:Finished processing state foo_task↦running↦healthy enter callbacks.
INFO:transitions.extensions.asyncio:Finished processing state foo_task↦running↦running enter callbacks.
> my_actor.state=[<ActorStartedState.healthy: 1>, <TaskState.running: 2>]

Option two is easier to achieve with the current PR (albeit, probably need some cleanup on the double naming of running, but this at least shows the idea):
    def __set_name__(self, owner, name):
        ...
        healthy = state_machine.get_state(ActorStartedState.healthy)
        self.running_state.add_substate(healthy)
        self.running_state.add_substate(NestedAsyncState(TaskState.running))
        self.running_state.initial = [ActorStartedState.healthy, TaskState.running]

Option one requires a little more work to rearrange the task_state.  I guess the question is whether healthy must be a substate of started, or if we can simply have assert ActorStartedState.healthy in my_actor.state.

Separate question, is there a specific reason for using exceptions instead of events?
@task
async def foo(self):
    raise Success()

@task
async def bar(self, event):
    event.set()

Separate question, is there a specific reason for using exceptions instead of events?
@task
async def foo(self):
    raise Success()

@task
async def bar(self, event):
    event.set()

Separate question, is there a specific reason for using exceptions instead of events?
@task
async def foo(self):
    raise Success()

@task
async def bar(self, event):
    event.set()

It's an API I came up with. We can change it.
It's exceptional in my opinion since we finish the task.


Can It can be used for Large-scale Object's Reconstruction

Hello, thanks for your great work.
I plan to use it for my graduation project, and the task I need to solve is the 3D reconstruction of freight trains, which is a very large object.
I think scene level methods should be used for 3D reconstruction of large-scale objects. Do you think SceneRF Works?
Thank you very much.

I believe the object's size isn't the main issue. The crucial factor is the variation in viewing angles of the images used for supervision. If you have a wide range of views from different angles, the model will perform well.
I also recommend checking out the paper https://arxiv.org/abs/2311.12754. It shows significant improvements compared to SceneRF.

Thank you very much for your quick reply. I will collect my own dataset for further validation.


:updatenative doesn't work from Nim-to-Nim

Broken on both Windows and Linux (presumably OSX too).

On Windows, the problem is twofold:

Quoting rules have subtly changed from the Python messenger.
We can't overwrite the native messenger while it is running.

(1) only requires slight changes to the current install command. They may well even be compatible with the old messenger.
(2) requires us to invoke the install command, then exit the messenger before it is finished, so that the binary can be replaced. For invoking the command, we can re-use :restart code to prevent the script being killed by Firefox. The install script itself just needs to run a loop with a handful of iterations, trying each time to overwrite the binary and sleeping a short while if it fails. If it fails too often, it just exits.
P.S.: Updating has been broken on OS X for a while.

Fixed in #35


Added HashMap so that all the fields from JSON that could not be mapped are now mapped and usable

Added HashMap so that all the fields from JSON that could not be mapped are now mapped and usable
Issue: #37

I had no idea it will tag someone if I write @ ignore (used in the tests)...

Thx


Add Tesseract OCR 5.0.0 from UB Mannheim

Package Requested
Manifest:
Id: MannheimUniversityLibrary.TesseractOCR
Version: 5.0.0
Name: TesseractOCR
Publisher: MannheimUniversityLibrary
License: Apache License 2.0
LicenseUrl: http://www.apache.org/licenses/LICENSE-2.0
Tags: ocr
Description: Tesseract is an optical character recognition engine for various operating systems. It is free software, released under the Apache License. Originally developed by Hewlett-Packard as proprietary software in the 1980s, it was released as open source in 2005 and development has been sponsored by Google since 2006.
Homepage: https://github.com/UB-Mannheim/tesseract
Arch: x64
Url: https://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-w64-setup-v5.0.0-alpha.20200328.exe
Sha256: CCE7A4C94D64345265FDE977DDA952A3480C3D2652E06E675651A2B008B7DF9F
InstallerType: exe
# ManifestVersion: 0.1.0

Uhm I will make a pull request for this soon

Close due to some mess created by me


Please help, Where to call DB

I am new in bitcoin gateway. I don't know how to call db here.  I working on site. How to add balance if user deposit. Means he redirect to gateway page and he deposit some amount. So i want to add balance on his account on my website. So how will i do it.
Please can you provide it with complete MYSQli example it will really help.  Thankyou
setMerchantID('your-id-here')
    ->setIPNSecret('your-secret-here');

try {
    if ($ipn->validate($_POST, $_SERVER)) {
        // Payment was successful, verify vars such as the transaction ID/email and process it.
    } else {
        // IPN worked, but the payment is pending.
    }
} catch (

Did you create an API call to create a transaction?

Yes i created..
$cps = new CoinPaymentsAPI();
$cps->Setup($Private_Key, $Public_Key);
$req = array(
'amount' => $btc_amount,
'currency1' => 'BTC',
'currency2' => 'USD',
'buyer_email' => $email, // Buyer Email
'buyer_name' => $name, // Buyer Name
'item_name' => $packagetype,
'item_number' => $planid,
'invoice' => $invoice_id,
'custom' => $userid, // Buyer userid getting from session
'ipn_url' => 'https://yourserver.com/ipn.php',
);
$result = $cps->CreateTransaction($req);
if ($result['error'] == 'ok') {
echo 'Send '.sprintf('%.08f', $result['result']['amount']).' BTC';
echo $txn_id = $result['result']['txn_id'];
echo $bt_address = $result['result']['address'];
echo $qrcode= '<img src='.$result['result']['qrcode_url'].'>';
}
Now i want to add  balance in "deposit table" in mysql.
deposit_id
User_id

Create a transactions  table, create a row before making the API call, and add the transaction row ID as your custom field.
Then in the IPN listener you can use the custom field (when applicable) to update the transaction log (status), and when the IPN is successful (aka transaction went through), you can add the balance to a balance column to the user's row.
Also, small tip: Store your balances in "increments" of 1/10ths of a cent. So 1 EUR/USD would be stored as 1000 balance in your system, this helps with preventing floating point calculation inaccuracy.

Closing this due to inactivity.


pq: value too long for type character varying(255)

Component
server
Describe the bug
Frequently seeing this error:
{"level":"error","error":"pq: value too long for type character varying(255)","time":"2022-08-16T21:03:05Z","caller":"/woodpecker/src/github.com/woodpecker-ci/woodpecker/server/pipeline/create.go:107","message":"failure to save build for stintel/openthread-ci"}

System Info
{"source":"https://github.com/woodpecker-ci/woodpecker","version":"next-e6d0b403"}

Additional context
No response
Validations

[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A join our Discord Chat Server or the Matrix room.

Just hit this again, apparently when pushing a commit with a commit message that contains more than 255 characters, this triggers the error, causing the webhook to fail with HTTP 500.


Connection Times Out Trying to Delete Transform

>>> client.delete_transform("foo")
Traceback (most recent call last):
  File "/home/ubuntu/code-engine-env/lib/python3.6/site-packages/urllib3/connectionpool.py", line 384, in _make_request
    six.raise_from(e, None)
  File "<string>", line 2, in raise_from
  File "/home/ubuntu/code-engine-env/lib/python3.6/site-packages/urllib3/connectionpool.py", line 380, in _make_request
    httplib_response = conn.getresponse()
  File "/usr/lib/python3.6/http/client.py", line 1331, in getresponse
    response.begin()
  File "/usr/lib/python3.6/http/client.py", line 297, in begin
    version, status, reason = self._read_status()
  File "/usr/lib/python3.6/http/client.py", line 258, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "/usr/lib/python3.6/socket.py", line 586, in readinto
    return self._sock.recv_into(b)
  File "/usr/lib/python3.6/ssl.py", line 1012, in recv_into
    return self.read(nbytes, buffer)
  File "/usr/lib/python3.6/ssl.py", line 874, in read
    return self._sslobj.read(len, buffer)
  File "/usr/lib/python3.6/ssl.py", line 631, in read
    v = self._sslobj.read(len, buffer)
socket.timeout: The read operation timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/ubuntu/code-engine-env/lib/python3.6/site-packages/requests/adapters.py", line 449, in send
    timeout=timeout
  File "/home/ubuntu/code-engine-env/lib/python3.6/site-packages/urllib3/connectionpool.py", line 638, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "/home/ubuntu/code-engine-env/lib/python3.6/site-packages/urllib3/util/retry.py", line 367, in increment
    raise six.reraise(type(error), error, _stacktrace)
  File "/home/ubuntu/code-engine-env/lib/python3.6/site-packages/urllib3/packages/six.py", line 686, in reraise
    raise value
  File "/home/ubuntu/code-engine-env/lib/python3.6/site-packages/urllib3/connectionpool.py", line 600, in urlopen
    chunked=chunked)
  File "/home/ubuntu/code-engine-env/lib/python3.6/site-packages/urllib3/connectionpool.py", line 386, in _make_request
    self._raise_timeout(err=e, url=url, timeout_value=read_timeout)
  File "/home/ubuntu/code-engine-env/lib/python3.6/site-packages/urllib3/connectionpool.py", line 306, in _raise_timeout
    raise ReadTimeoutError(self, url, "Read timed out. (read timeout=%s)" % timeout_value)
urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='app.alooma.com', port=443): Read timed out. (read timeout=60)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/ubuntu/code-engine-env/lib/python3.6/site-packages/alooma/alooma.py", line 686, in delete_transform
    return self.__send_request(requests.delete, url)
  File "/home/ubuntu/code-engine-env/lib/python3.6/site-packages/alooma/alooma.py", line 111, in __send_request
    response = func(url, **params)
  File "/home/ubuntu/code-engine-env/lib/python3.6/site-packages/requests/api.py", line 158, in delete
    return request('delete', url, **kwargs)
  File "/home/ubuntu/code-engine-env/lib/python3.6/site-packages/requests/api.py", line 60, in request
    return session.request(method=method, url=url, **kwargs)
  File "/home/ubuntu/code-engine-env/lib/python3.6/site-packages/requests/sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/home/ubuntu/code-engine-env/lib/python3.6/site-packages/requests/sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "/home/ubuntu/code-engine-env/lib/python3.6/site-packages/requests/adapters.py", line 529, in send
    raise ReadTimeout(e, request=request)
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='app.alooma.com', port=443): Read timed out. (read timeout=60)

I'm able to set_code_engine_code but not delete it. Is there any other simpler way to go about making sure my code engine doesn't get littered with orphaned modules as time goes one?

Hi @drproteus
Thanks for reporting the issue.
We've identified the problem, and are working on a fix.
We expect a fix to be deployed next week.
I'll update here once it is fixed.

Hi @drproteus
The issue should be resolved now.
I'm gonna go ahead and close this.


Fix sites that use about:blank redirect technique

When you open some links with Google Calendar, instead of opening the link directly, the site opens a new window with the location about:blank and then sets the new window's document content to include a refresh directive to open the actual link.
Without this change, the links in Google Calendar do nothing when clicked, because about:blank is passed to shell.openExternal(), which does nothing with it.
This PR consists of multiple changes:

The linkIsInternal() function has been updated to treat about:blank links as internal so that the redirect technique can work at all. However, while this works, the redirect itself causes another window to be opened (in the external browser, or in a new tab if tabs are enabled), leaving behind a blank, useless window in the nativefier app.

Tests have been added for linkIsInternal().

The about:blank window is hidden until the redirect occurs, at which point it closes the window, thereby avoiding the aforementioned problem of the blank, useless window being left behind.

The onNewWindow() function has been refactored to make it testable, and tests have been added.

@ronjouch Please take a look at the tests I added and let me know if they provide the coverage you were looking for. Also let me know if/how you would like me to address the codeclimate issues.

This will need to be rebased after #622 is merged.

@bacongravy 👍 job with the tests, thanks, that will help not re-breaking this thing.
Jia (project author) recently added prettier to the project, and that's what makes the CI fail. Can you fix the issue? (And consider adding a prettier plugin to your editor/IDE)

@ronjouch A couple of things to note:

Linting doesn't fail when I run it locally (yarn run lint)
The failure reported by Travis is in inferUserAgent.test.js, which I did not modify with this PR.

Since I can't reproduce this issue locally and it is not happening in code that I wrote I don't think I'm the right person to resolve this CI issue.

Actually, after deleting my local yarn.lock files and rebuilding I do see eslint failing.

I put up #625 with the fix.

👍👍👍


Demo Login does not work

the demo at openduty.herokuapp.com seems broken to me. Login with root/toor does not work anymore.

Bump!

Bump. Would love to try this out to see if it does what I want.

I've been pretty busy lately, sorry. Will handle the issue tonight.

I totally understand. I appreciate the work you do as an OSS project maintainer. :)

Demo login restored. You can log in with root/toor on Heroku

Please note, that the heroku instance runs with limited functionality (No notifications get delivered, it's just to demo the web interface)

If you are into docker. i recommend this :  https://github.com/endticket/docker-openduty You just have to add your settings to the container, and you are good to go.


Allow wait-for to match for the whole event vector

First of all, awesome work! Really improved our testing setup.
If I understand correctly, wait-for can not take the whole event vector as a predicate but it only evaluates on the event key? For now I'm solving it using
(rf-test/wait-for [(fn [event]
                             (= event [:eventkw event-val]))]
          (is (= @mystate :expected/state)
            "It did not go into the correct state"))

Am I using re-frame in a strange way or could it be relevant to match it like this?
(rf-test/wait-for [[:eventkv event-val]]
          (is (= @mystate :expected/state)
            "It did not go into the correct state"))

Glad to hear this is helping out with your testing.  And thanks for the feedback.
Unfortunately, matching on the entire event vector like that would be ambiguous.
wait-for already accepts quite a variety of things for each of its arguments, as documented in the docstring:  https://github.com/Day8/re-frame-test/blob/master/src/day8/re_frame/test.cljc#L230
One of those things is already a vector of event IDs to match against (this is basically just allowing a vector in place of a set for those who prefer it, since arguably the set literal notation comes with a connotation that you might be using the set as a short-hand way of supplying a function, but actually here set is special-cased).
So I don't see any way to distinguish between "the caller supplied a vector of event-ids and we should match against any of them" and "the caller supplied an event vector which should be matched in its entirety".
I think what you've got -- or I suppose perhaps (partial = [:eventkw event-val]) or #(= % [:eventkw event-val]) -- is about as concise as we can get for this.  (Or alternatively obviously it would be possible to have your own wrapper around wait-for that made different choices about the form of its arguments:  especially since wait-for's only real job is to act as sugar for wait-for*, allowing you to write the arguments a little more naturally/concisely.)
For what it's worth, I don't think you're necessarily using re-frame in a strange way.  But if you are having to match the entire event vector before knowing it's safe to continue the body of wait-for, then that implies that there is some "important thing that happened in the timeline of my app" that's not being expressed as a named event in its own right.  Without knowing exactly use case you have, obviously I'm just making sweeping generalised assumptions -- but I wonder whether that might sometimes point to a possibility that your code would be clearer by giving the thing you're waiting for a distinct name in any case?
In any case, I guess it's fair to say that wait-for is written on an assumption about the common case:  where something is important enough that you can't continue your test until you know it's already happened, it's a fair bet that it's important enough for you to have given it its own name.

Alright that makes sense, yeah regarding my events I have a little state machine abstraction that I have incorporated re-frame into. It processes events according to some rules and therefore I am using the same event key. I'll use your solution.
Another question, JVM testing!? Any example of how to set that up? Benefits? (I'm running the tests in node at the moment, which is good because node is super fast to fire up). Maybe I should open a separate issue asking for this to be documented?


Automatic PR from RestAPI-PR2200

Generated from RestAPI PR: https://github.com/Azure/azure-rest-api-specs/pull/2200

Path fix does not need regeneration


googleservice_info_plist_path isn't relative to the Xcode project root but to the built product root

Hello,
I'm using fastlane firebase_app_distribution
In the documentation it is written :

googleservice_info_plist_path | The path to your GoogleService-Info.plist file, relative to the root of your Xcode project. Set to GoogleService-Info.plist by default. The file is used to get your app's Firebase App ID if the app parameter is unspecified.

During testing, I noticed that in fact it was relative to the archived built product path (/Users/XXXXX/Library/Developer/Xcode/Archives/XXXXXX/XXXXXX.xcarchive/Products/Applications/XXX.app/)
I believe that either the documentation should be updated, or the plist should properly be retrieved in the project hierarchy instead of the archive one.
Related to : https://github.com/fastlane/fastlane-plugin-firebase_app_distribution/pull/46

Thanks for pointing this out @Valpertui! We're working on pushing out a documentation update now.

Hi @jeremydurham, I can open a new issue if you find that OK, but wouldn't it be more useful if the file path will be relative to the root project folder, and not to the product path?


[fix|sde-backend] : spring security vulnerability CVE-2024-22234 fix

Description
Fixed

Fixed spring security Vulnerability CVE-2024-22234.

Pre-review checks
Please ensure to do as many of the following checks as possible, before asking for committer review:

[x] DEPENDENCIES are up-to-date. Dash license tool. Committers can open IP issues for restricted libs.
[x] Copyright and license header are present on all affected files

@almadigabor  Please review and merge. Thanks


*Watch～ Kingdom of the Planet of the Apes 2024 (!FulLMovie.) Online For (.Free.) on Streamings

Watch Kingdom of the Planet of the Apes Full Movie Full 4K ~ While several avenues exist to view the highly praised film Kingdom of the Planet of the Apes online streaming offers a versatile means to access its cinematic wonder From heartfelt songs to buoyant humor this genre-bending work explores the power of friendship to uplift communities during troubling times Directed with nuanced color and vivacious animation lighter moments are blended seamlessly with touching introspection Cinephiles and casual fans alike will find their spirits lifted by this inspirational story of diverse characters joining in solidarity Why not spend an evening immersed in the vibrant world of Kingdom of the Planet of the Apes? Don’t miss out!
Last Published Update: June 9, 2024.
➤➤🔴📱 Watch Now ✅➤➤ Kingdom of the Planet of the Apes Saga(2024) Fullmovie Online
➤➤🔴📱 Download ✅➤➤ Kingdom of the Planet of the Apes(2024) Fullmovie Online HD

Kingdom of the Planet of the Apes cinematic universe was expanded on June 9 with the release of The Ballad of Songbirds and Snakes in theaters However not everyone wants to experience the intense emotions that come with high-stakes drama and romance in a public setting If you prefer the comfort of streaming and the possibility of shedding a tear in the privacy of your living room you may have to wait a bit longer The Ballad of Songbirds and Snakes is an adaptation of Suzanne Collins’ novel of the same name which was published in 2020 The story focuses on Coriolanus Snow who eventually becomes President Snow and has a tumultuous relationship with Katniss Everdeen In this new adaptation Tom Blyth portrays a young Coriolanus while Rachel Zegler plays Lucy Gray Baird the erased District 12 victor of the 10th annual Hunger Games
Coriolanus is tasked with mentoring Lucy a responsibility for which he feels a sense of pride However Lucy’s charm captivates the audience of Panem as she fights for her life and the well-being of her district They form an unconventional alliance that may even develop into an unlikely romance But is their fate already sealed? Fans of the original Hunger Games trilogy know the answer but the journey towards that outcome is a thrilling adventure
The prequel film is distributed by Lionsgate and collides with Peacock a streaming service through a multiyear agreement as reported by Collider Consequently it is highly likely that the movie will be available for streaming on that platform upon its release The agreement is set to take effect in 2024 so keep an eye out for The Ballad of Songbirds and Snakes then
To prepare for this highly anticipated moment viewers can subscribe to Peacock starting at $599 per month or take advantage of a discounted annual rate of $5999 Peacock not only offers major releases but also provides access to live sports events and popular shows on NBC Bravo and numerous other popular channels
WHEN AND WHERE WILL Kingdom of the Planet of the Apes BE STREAMING?
The new Kingdom of the Planet of the Apes prequel Kingdom of the Planet of the Apes will be available for streaming first on Starz for subscribers Later on the movie will also be released on Peacock thanks to the agreement between distributor Lionsgate and the NBC Universal streaming platform Determining the exact arrival date of the movie is a slightly more complex matter Typically Lionsgate movies like John Wick 4 take approximately six months to become available on Starz where they tend to remain for a considerable period As for when Songbirds Snakes will be accessible on Peacock it could take nearly a year after its release although we will only receive confirmation once Lionsgate makes an official announcement However if you wish to watch the movie even earlier you can rent it on Video on Demand (VOD) which will likely be available before the streaming date on Starz
WHERE CAN I STREAM THE ORIGINAL Kingdom of the Planet of the Apes MOVIES IN THE MEANTIME?
In the meantime you can currently stream all four original Kingdom of the Planet of the Apes movies on Peacock until the end of November The availability of Kingdom of the Planet of the Apes movies on Peacock varies depending on the month so make sure to take advantage of the current availability
HOW TO WATCH Kingdom of the Planet of the Apes (2024) ONLINE:
As of now, the only way to watch Kingdom of the Planet of the Apes is to head out to a movie theater when it releases on Friday, September 8. You can find a local showing on Fandango. Otherwise, you’ll have to wait until it becomes available to rent or purchase on digital platforms like Vudu, Apple, YouTube, and Amazon or available to stream on Max. Kingdom of the Planet of the Apes is still currently in theaters if you want to experience all the film’s twists and turns in a traditional cinema. But there’s also now an option to watch the film at home. As of November 25, 2024, Kingdom of the Planet of the Apes is available on HBO Max. Only those with a subscription to the service can watch the movie. Because the film is distributed by 20th Century Studios, it’s one of the last films of the year to head to HBO Max due to a streaming deal in lieu of Disney acquiring 20th Century Studios, as Variety reports. At the end of 2024, 20th Century Studios’ films will head to Hulu or Disney+ once they leave theaters.
IS Kingdom of the Planet of the Apes MOVIE ON NETFLIX, CRUNCHYROLL, HULU, OR AMAZON PRIME?
Netflix: Kingdom of the Planet of the Apes is currently not available on Netflix. However, fans of dark fantasy films can explore other thrilling options such as Doctor Strange to keep themselves entertained.
Crunchyroll: Crunchyroll and Funimation have acquired the rights to distribute Kingdom of the Planet of the Apes in North America. Stay tuned for its release on the platform in the coming months. In the meantime, indulge in dark fantasy shows like Spider-man to fulfill your entertainment needs.
Hulu: Unfortunately, Kingdom of the Planet of the Apes is not available for streaming on Hulu. However, Hulu offers a variety of other exciting options like Afro Samurai Resurrection or Ninja Scroll to keep you entertained.
Disney+: Kingdom of the Planet of the Apes is not currently available for streaming on Disney+. Fans will have to wait until late December, when it is expected to be released on the platform. Disney typically releases its films on Disney+ around 45-60 days after their theatrical release, ensuring an immersive cinematic experience for viewers.
IS Kingdom of the Planet of the Apes ON AMAZON PRIME VIDEO?
Kingdom of the Planet of the Apes movie could eventually be available to watch on Prime Video, though it will likely be a paid digital release rather than being included with an Amazon Prime subscription. This means that rather than watching the movie as part of an existing subscription fee, you may have to pay money to rent the movie digitally on Amazon. However, Warner Bros. and Amazon have yet to discuss whether or not this will be the case.
WHEN WILL ‘Kingdom of the Planet of the Apes’, BE AVAILABLE ON BLU-RAY AND DVD?
As of right now, we don’t know. While the film will eventually land on Blu-ray, DVD, and 4K Ultra HD, Warner Bros has yet to reveal a specific date as to when that would be. The first Nun film also premiered in theaters in early September and was released on Blu-ray and DVD in December. Our best guess is that the sequel will follow a similar path and will be available around the holiday season.
HERE’S HOW TO WATCH ‘Kingdom of the Planet of the Apes’ ONLINE SREAMING IN AUSTRALIA & NEW ZEALAND
To watch Kingdom of the Planet of the Apes (2024) for free online streaming in Australia and New Zealand, you can explore options like gomovies.one and gomovies.today, as mentioned in the search results. However, please note that the legality and safety of using such websites may vary, so exercise caution when accessing them. Additionally, you can check if the movie is available on popular streaming platforms like Netflix, Hulu, or Amazon Prime Video, as they often offer a wide selection of movies and TV.
Mark your calendars for July 8th, as that’s when Kingdom of the Planet of the Apes will be available on Disney+. This highly anticipated installment in the franchise is packed with thrilling action and adventure, promising to captivate audiences and leave them craving for more. Captivate audiences and leave them craving for more.
Here is a comprehensive guide on how to watch Kingdom of the Planet of the Apes online in its entirety from the comfort of your own home. You can access the Full Movie free of charge on the respected platform known as 124Movies. Immerse yourself in the captivating experience of Kingdom of the Planet of the Apes by watching it online for free. Alternatively, you can also enjoy the movie by downloading it in high definition. Enhance your movie viewing experience by watching Kingdom of the Planet of the Apes on 124movies, a trusted source for online movie streaming.

M ALL
### The Movie You are Looking for Is Available at watch4khd.com In Various Formats.


DJV 1.2.2 & 1.2.3 image rotation issues

Wrong rotation. Rotation worked as expected on v1.1.0
No rotation v1.2.3

Rotated 90º v1.1.0

Rotated 90º v1.2.3

Rotated 180º v1.2.3

Rotated 270º v1.2.3

Sorry about that! I have a fix and will release it later today or tomorrow. Also thanks for the screenshots.

I just released a new version that fixes this issue, you can download it here:
http://djv.sourceforge.net/Download.html


--use-BERT option is ignored by nerTagger eval

I will submit a PR today.

I forget to add it, thanks for the PR #49 which has been merged.


function purity analysis

Function purity analysis sounds amazing.
Can you give more details on how you would approach this and what the timeline might be.

Out of curiosity, has there been any update on this?

I am also very interested in this. (Curious, why is this closed if it's part of the plans, and it is not ready yet?)
Keep up the good work!


Fix mozilla/thimble.mozilla.org#1478 - Regression causes fragment links to not work in preview

r=me


Create Error Handling and UI Error States for Auth Flow Components

Related User Story

Related Epic: https://github.com/Linkta-org/core/issues/185
Related Tickets

#281 #255
Acceptance Criteria

Use react query error methods to update the UI when login fails for all three possible login methods on Signup and Signin Pages.

Google Auth
Github Auth
Email and Password

Subtasks
<!-- If necessary, break down the ticket into smaller, actionable subtasks. Create issues accordingly.>

Issue implemented in #307. Moving this issue to Done.


Update design documentation page

It seems this page is last updated in 2015: https://github.com/haskell/haskell-ide-engine/blob/master/docs/Design.md
Is it still up-to-date?

Nope, it has been superseded by https://github.com/haskell/haskell-ide-engine/blob/master/docs/Architecture.md

@alanz maybe delete it then? Or at least put a link to newer doc?


Wrong error message during finetuning

Rasa Open Source version
3.0.0rc2
Rasa SDK version
No response
Rasa X version
No response
Python version
3.8
What operating system are you using?
OSX
What happened?
Started with a rasa init project which trained an initial model. I made changes to the NLU training data by adding a new intent:
- intent: new_intent
  examples: |
    - yes i am new
    - can i break you
    - i don't think i want to do this
    - but its exciting

Ran rasa train --finetune. The process exits with:
InvalidConfigException: Cannot finetune because more than just the 'epoch' keys have been changed in the configuration. Please revert your configuration and only change the 'epoch' settings where needed.

whereas according to 2.8.x, the log should have been:
2021-11-16 15:44:23 INFO     rasa.model  - Data (nlu_labels) for finetune section changed.
NLU model can not be finetuned.

which is the correct info as we only changed the data and added a new intent label which should disallow finetuning.
Command / Request
rasa train --finetune

Relevant log output
No response

It is correct that if new intents, entities, entity groups, entity roles, and action names have been added compared to the initial training phase, finetuning is not possible and it should return an appropriate message that new labels have been added (you can try 2.8.x branch to test this).
This does not apply to adding a new training example to existing intents, entities, etc.
To answer your questions:

Are changes to the nlu.yml counted as "configuration" changes?

No, they are not configuration changes. Configuration changes are only the ones that are made to config.yml file.

did you make any configuration changes?

Nope

then perhaps we should re-arrange the order in which we check the cases listed above?

The checks are fine but I suspect that an addition of a new training example to existing intent is being treated as an addition of a new intent which is wrong. 😅

Thanks @dakshvar22 😄
I did have a question:

The checks are fine but I suspect that an addition of a new training example to existing intent is being treated as an addition of a new intent which is wrong

If I understand your original comment, what you did was add an entirely new intent:
- intent: new_intent
  examples: |
    - yes i am new
    - can i break you
    - i don't think i want to do this
    - but its exciting

And that this should trigger the 3rd check (the nlu check), and show the message:
"Cannot finetune because NLU training data contains new labels "
"or does not contain any examples for some known labels. " ...

Did you add anything to an existing intent?
In any case, looking at the code, the 1st check (the config check), which raises the message you saw, only looks at the config values of the fingerprint. I will see if I can replicate the your error using the steps you describe.

Terribly sorry @carlad ! This is my mistake. During the QA, I did add a new intent with examples to it and realized that finetuning wouldn't be possible in that case.. So, just added a new example to an existing intent but forgot to remove the data for new intent that I previously added and that's why I kept getting the error.. i just tried adding a new example to the existing intents of a project and tried finetuning, it works!
Again sorry for the confusion caused here 😞

What I can still indeed reproduce is this:

Create a new project with rasa init
Add a new intent like:

- intent: new_intent
  examples: |
    - yes i am new
    - can i break you
    - i don't think i want to do this
    - but its exciting

Try finetuning with rasa train --finetune

I get the error saying InvalidConfigException: Cannot finetune because more than just the 'epoch' keys have been changed in the configuration. Please revert your configuration and only change the 'epoch' settings where needed.
Whereas, I would expect - InvalidConfigException: Cannot finetune because NLU training data contains new labels or does not contain any examples for some known labels. Please make sure that the NLU data that you use for finetuning contains at least one example for every label (i.e. intent, action name, ...) that was included in the NLU data used for training the model which we attempt to finetune now. Moreover, you must not add labels that were not included during training before.
This should be fixed in this issue IMO.
Does that help clarify?

No problem! It's been a great opportunity for me to understand finetuning validation and fingerprints a little more.
It still doesn't explain why you got the config mismatch error message, rather than the nlu mismatch error message, if nothing in your config.yml changed... 🤔

It still doesn't explain why you got the config mismatch error message, rather than the nlu mismatch error message

Yep, that should be investigated and fixed 😄

Okay, I have more evidence for you... This only happens when you use the config that comes with autoconfiguration of rasa init as it is. If you uncomment the lines of the config but still use the same pipeline of the config in the above setup, you'll get the correct error message. Definitely something to do with how config is being fingerprinted across multiple runs?

🤔  I'm suspecting that the importer will add the new intent to the domain for us and that afterwards (at that point, given those updates) we have no way to distinguish whether the user changed only the nlu data and/or the domain -- There's definitely some merging going on with retrieval intents here

Problem seems to be that in the default project, we fill in ["debug_plots", "augmentation_factor"] but for some reason those parameters are not set when running rasa init -- Guess that comes from some mismatch of defaults for those cli parameters.


Handle forgot password when using SAML

I have created a issue for this and was hoping to get an answer.
https://github.com/MicrosoftDocs/azure-docs/issues/32517

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: e8b5f81a-f216-b345-d434-c0ebbf70ff00
Version Independent ID: e77fb894-d7a0-ae0c-7f4c-1030df97f073
Content: User flows in Azure Active Directory B2C
Content Source: articles/active-directory-b2c/active-directory-b2c-reference-policies.md
Service: active-directory
Sub-service: b2c
GitHub Login: @davidmu1
Microsoft Alias: davidmu

@rupeshprasad I am closing this out because it is a duplicate of #32517


Where does the function pouch._search_query come from?

Hey, thanks for this awesome search plugin.
I'm trying to understand the flow of the plugin, and there's one big hole I'm not able to find - the definition of pouch._search_query.  (https://github.com/pouchdb-community/pouchdb-quick-search/blob/master/lib/index.js#L173).  I can't find it in either the pouchdb repository or this repository.  Maybe it's created dynamically somewhere?

I see that it's in the repo pouchdb-mapreduce-no-ddocs: https://github.com/nolanlawson/pouchdb-mapreduce-no-ddocs/blob/3880fe18ca93008c12decb988a1ea3c724d7962f/src/index.js#L1015


<EMAIL_ADDRESS>

demo:
<View style={{backgroundColor:'#fff',height:40,borderBottomWidth:1}}>
<View style={{height:20,width:20,backgroundColor:'red',position:'absolute',bottom:-15}}/>

Hey, thanks for reporting this issue!
It looks like your description is missing some necessary information. Can you please add all the details specified in the template? This is necessary for people to be able to understand and reproduce the issue being reported.
I am going to close this, but feel free to open a new issue with the additional information provided. Thanks!


Bug make forbiddenMVRewrite work on InlineViewRef (#26162)

make forbiddenMVRewrite work on InlineViewRef
Proposed changes
pick from #26162
Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall


Complete build options for Pthread API

Would you like to add the configuration script "AX_PTHREAD" to your build specification?

The build system is going to be changed shortly, so there's no need to change that at this moment.

being more specific, we're looking into moving to kbuild.
as it may take some  time to be fully tested and merged, I'd accept the patch to use AX_PTHREAD as it shouldn't hurt.

Since kbuild/kconfig is in, I'm closing this issue.


feat(middleware/cors): pass context to options.origin function

Hello!
I opened this PR because I wanted to use a context in the options.origin function as follows:
app.use(
  '/api/*',
  cors({
    origin: (origin, c) => {
      return c.env.MY_ALLOW_ORIGIN
    },
  })
)

Author should do the followings, if applicable

[ ] Add tests
[x] Run tests
[x] yarn denoify to generate files for Deno

Hi @okmr-d !
Thank you for creating the PR.
In this case, we recommend wrapping the cors() with another middleware:
const app = new Hono<{
  Bindings: {
    MY_ALLOW_ORIGIN: string
  }
}>()

app.use('/api/*', async (c, next) => {
  const middleware = cors({
    origin: () => {
      return c.env.MY_ALLOW_ORIGIN
    },
  })
  return middleware(c, next)
})

This way is often used in Basic Auth Middleware.

Hi @yusukebe !
Thank you for check the PR. My problem is solved.
In the case of the csrf middleware, I could use the context.
https://github.com/honojs/hono/blob/13039a9526d032f854901888473567a4bd8a6c08/src/middleware/csrf/index.ts#L5-L7
It is easier to understand if the arguments of the two functions are the same. How's that?

csrf middleware origin option
cors middleware origin option

It is easier to understand if the arguments of the two functions are the same. How's that?

 Making the two functions the same is good. Let's go with it.

@okmr-d
I'll merge this into the "next" branch for releasing the next minor version 4.2.0. It will be released later. Thanks!


Added Cache::getOrSet() method

Q
A

Is bugfix?
no

New feature?
yes

Breaks BC?
no

Tests pass?
yes

Fixed issues
#11959, #12312, #11173

@mdomba suggested getOrSet(). What do you think?

That would be the most explicit/unambiguous name imo.

That is, at least, less confusing than alternatives.

Naming could be ensure():
$result = $cache->ensure(function() {}, $key, $duration, $dependency);

What is ensured by it?

What is ensured by it?

Value in cache. Ensure means return it if exist, if not - create.

Although I would swap first 2 arguments if this name will be used:
$result = $cache->ensure($key, function() {});
$result = $cache->ensure($key, function() {}, $duration, $dependency);

$value = $cache->remember($key, $duration, function() {}, $dependency);

?

@rob006 I disagree. Duration is less important that function. Also making duration as penultimate parameter, and dependency as last parameter would make more sense—AFAIR it's common approach across the framework.

@resurtm Duration is much shorter than function, and personally I almost always use custom duration in such situations. And this is much more readable:
$value = $cache->rememeber('my-key', 300, function() {
	// some
	// complex
	// code
});

than
$value = $cache->rememeber('my-key', function() {
	// some
	// complex
	// code
}, 300);

But I will not insist on it, this was more method name proposition.

@rob006 I like the name. But I agree with @resurtm about the order of parameters.

$value = $cache->rememeber(function() {
	// some
	// complex
	// code
}, 'my-key', 300);

would read as "remember function result as 'my-key' for 300 seconds"

Hmm, "remember"? Isn't that what caches always do? You could even replace set() with remember(). I can not see, how it makes the situation any clearer than the other suggestions.

@mikehaertl good point :)

@cebe
remember($key, $duration, function() {}, $dependency) would read as "remember $key for $duration seconds with value $function".
@mikehaertl But "remember" also means "get something from memory". "Do you remember what is the value of $key? If not, use function result and remember it.". "Set" only means "put something there".

Well, I think we can come up with 10-50 more suggestions. Actually I had exactly the same naming problems. That's why I ended up with my suggestion, to simply extend get() with further arguments. Because that's what we bascially do here: get a cached value - and use "defaults" (or a callback) if there is no stored value yet.
That comes close to what we do on other similar occasions like yii\web\Request::get(). The only difference is really that the default value is not passed as value but is obtained from a callback.
I can't think of any other arguments for get() that would make more sense. So I'd still vote for a minor BC breaking interface change here.

The signature of get() is really simple right now, I am against making get a complicated method. The closest thing to get() would be getOrSet():
get($key)
getOrSet($key, function() {}, $duration, $dependency)

getOrSet extends this nicely here, also for autocompletion, and is the most obvious search for developers searching this functionality imo (same name is used by Django btw).
remember is the name used by laravel btw.

the objective is a getter, so like @mikehaertl states, its logical to name it this way. It also 'ensures' that something is actually returned (like @klimov-paul suggests) so I'm expecting a naming like:

ensuredGet()
forcedGet()
setGet()

Personally I think what @cebe suggested i.e.
get($key)
getOrSet($key, function() {}, $duration, $dependency)

is the best name we've got so far. "remember" sounds more like natural language but it's a bit more harder to comprehend because of the double meaning. It could be OK for native speakers though...

It's not really an "or" scenario, which is a bit confusing. But it's favorable to start with 'get' to be the next related method in line. Perhabs:
getSet()

It's not really an "or" scenario, which is a bit confusing.

it is. It either gets the value from the cache or computes it and sets it.

if you say "or" I dont expect any "get" action anymore, so it's illogical with respect to https://github.com/yiisoft/yii2/blob/66ebd797a48172837cd45f88cca3eda664d864d3/framework/caching/Cache.php#L579

Java has putIfAbsent and computeIfAbsent methods in standard map, if you're interested in similar experience.

By the way, i'm not familiar with current Yii internals, but, looking at the code, i have a feeling that false can't be cached (and will be recomputed on every hit). If this is true, this is probably not the behavior users will expect.

By the way, i'm not familiar with current Yii internals, but, looking at the code, i have a feeling that false can't be cached (and will be recomputed on every hit). If this is true, this is probably not the behavior users will expect.

This is true and documented http://www.yiiframework.com/doc-2.0/guide-caching-data.html#cache-apis it is the compromise for a simple and fast API, that does not include wrapping of values in a container object like it is done in the cache PSR proposal for example.

@cebe i understand that, and that it is perfectly valid in other scenarios - i.e. if you have cached false, you'll end up with same one request to cache and will receive false in any case. However, in compute-if-absent case algorithm is not fully dependent on value stored in cache and may cause unwanted computations; this will become obvious and painful as soon as end user will bring side effects in computation (yes, it is completely wrong, but this surely will happen) or just if user tries to cache some hot boolean expression. I think this deserves at least huge capslocked warning in documentation.

silly me, didn't look at the documentation. disregard previous comment.

Hm. If we need a name that describes the method, maybe let's do it:
getOrSetAndReturn($key, function() {}, $duration, $dependency)

?

getOrSetAndReturn

this is what it does and it seems to me that is the reason we can not find a good name. It simply does too much.

It simply does too much.

I think it does exactly what it should do for user's cases. It just lacks an obvious/well-known name. If getOrSetAndReturn sounds too ugly: cache or remember names fit good IMHO. I just feel the first one (getOrSetAndReturn) is a Yii way while the second is a Laravel "expressive" way. I don't know why. :)

I like ensure() best so far. For another proposal: load().
Also I prefer the closure to be the 2nd argument.

@sergeymakinen

getOrSetAndReturn

There is much better variant (and more concise!) mentioned above:

putIfAbsent
computeIfAbsent

I'd pick the one proposed by @etki.

I agree to what @dynasource said above:

if you say "or" I dont expect any "get" action anymore,

We always get the result of the callback. And it gets cached for later calls. So how about:
getCachedResult(function() { }, $key, $duration, $dependency)

This is an interesting discussion.
Whats seems more than logical to me, seems illogical to others and vice versa. Looks to have multiple root causes:

language interpretations: "set" is an irregular English verb https://www.usingenglish.com/reference/irregular-verbs/set.html that can be interpreted as verb, past simple & past participle
everyone has its own "naming" style: by method objective, by contents & word preference

Renamed to getOrSet()

"OR" now really? :-1:  Where is there an OR in this operation? This name is plain incorrect and the worst pick from all the suggestions above.
"Get me the value OR set it" does not describe what the code does. The code does really "Get me the value of that method. If it's cached, get me the cached value instead. If not, execute the method an store it"
There is no OR here!

Again: Why was this discussion ended? Someone now made a decision which is obviously wrong! Please reconsider this decision. We really can do better than this I think.

@mikehaertl obviously, it's not possible to have a method with the accurate description in the name so we have what we have. Other names aren't any better.

 Will he still fight? Or simply sit down and drink?
*OR implies, there's a choice between two things. But here is no choice. So getOrSet() is simply not the correct description what this method does. There were much clearer suggestions. We could at least pick one, which is not wrong!

What do you think this person will do? Will he still fight? Or simply sit down and drink?

There are two choices available. That's up to the person.

Since there is no best name for this method, at least pick a short one from the suggestions.

There are two choices available. That's up to the person.

That's my point: If you say "or" it implies there is a choice. In our case there is no choice between "get OR set". It's not just wrong, it's also not telling you anything about what this method does. Even cached(), closure(), ensure() or my suggested getCachedResult() are better - none of them is logically wrong. But the current choice definitely is.

One more suggestion, which at least is not wrong: getAndCache(). It's rather an AND than an OR.

getAndCache() produces really weird andCache property.
I still like ensure better. No one said it's bad, word meaning matches the purpose, it's short... What else we need?

@mikehaertl

If you say "or" it implies there is a choice. In our case there is no choice between "get OR set".

But there is a choice. What action is taken is chosen based on current state. It's similar to getPostOrThrowException() i.e. you're not deciding which action is taken, it's chosen for you.

But there is a choice. What action is taken is chosen based on current state.

This is pretty much true for almost any method with medium complexity. Just picking a random example from yii\base\Request:
    public function getScriptFile()
    {
        if ($this->_scriptFile === null) {
            if (isset($_SERVER['SCRIPT_FILENAME'])) {
                $this->setScriptFile($_SERVER['SCRIPT_FILENAME']);
            } else {
                throw new InvalidConfigException('Unable to determine the entry script file path.');
            }
        }

        return $this->_scriptFile;
    }

Shouldn't we call this method getOrSetScriptFile() then?

No because it's not accepting any value so clearly it's a simple getter with static cache.

But even your example is different: getPostOrThrowException(): This will either get a value or throw an exception. Perfectly fine. It's never both.
Method names should explain what the method does from a logical perspective in plain simple words. It should not go into details about the internal implementation (which is what you said above about "choice": Every method with an if inside is about a choice, but that's irrelevant and doesn't enforce an "Or" in the method name).
The description of this method from a logical perspective is:

Always return me the result of the evalutated closure
Cache this result and return this cached result on later calls

Where exactly is here any or in this description?

@mikehaertl, I appreciate your persistence on this matter. It clearly shows that "getOrSet" is too controversial to accept.

"Get value from cache by the key, or set it, when it does not exist in cache"

I just want to say that language is flexible. Presence of OR depends on how you want to compose your message. In case you want to say something without OR - you will do it for sure.
As it was said many times before, there will be no absolute winner, because the method does too much to say it in one word. (We can create a new word for this. How about peloozoid() or safome()?)
I've choosen getOrSet() for the following reasons:

It gets
It sets
It will be shown on IDE autocomplete for get, making it easier to find
It is simple and short

How about getCached()?

@rob006 how about executeCached?

how about executeCached?

It sounds like "execute something from cache".

I vote for getCached

getCached has nothing about set

How about
$result = $cache->caching($key, function() {}, $duration, $dependency);

or
$result = $cache->store($key, function() {}, $duration, $dependency);

?

getCached has nothing about set

the word cached implies that already

getCached has nothing about set

Does it have to?  There are already getters in Yii that have side effects and save some values in cache. Why method name should say everything about how it works?

Also, it not really set but add something to cache.

Why method name should say everything about how it works

Thats strokes with @mikehaertl arguments about the focus on what a method does instead of how he does it, favoring a declarative programming style over a imperative style.

I think getCached(), cached(), executeCached() - they (and others) are all fine and make sense. I could live with that. If you find any of them in the code and look at the arguments, it should be easy to guess what they do.
But this brings me to my new favourite:
$expensive = $cache->execute(function() { }, 'expensive');

It's missing the "please cache this" part? Maybe, but why the heck would I call an execute() method on a cache component and pass a long a callable and something that looks like a cache key? I would say, even someone new to Yii could guess what this method does.

$cache->execute() is extremely close to original $cache->closure(), isn't it?
$cache->closure() reads easy: Cache this closure. I can not read $cache->execute() as easy.

it's a sister of the get method and should have this prefix for easy comparison.

@SilverFire closure is not a verb but a noun. execute like most methods is a command.
@dynasource I'd say this is a little exception. I was thinking about other getter names too. But the discussion here already shows, that something's wrong with this approach. We also have methods like resolve() or evaluate() that return things and don't have a get prefix.
Just look at this list and let it sink in for a minute:  ;)

$cache->set(): Set a value to cache
$cache->get(): Get a cached value
$cache->execute(): Execute a method and cache the value

$cache->execute(): Execute a method and cache the value

To be more precise, Get the value from cache and return it. When it's not available, execute function, set it to cache and return value.
This argue will never end.

This argue will never end.

That's my point. We should pick a simple concise mnemonic and move on.
Look at Request::resolve() (it's not getResolved() or something). Not every method that returns something must contain get. It's also not Cache::getValue() or even getCachedValue() but simply Cache::get(). Why I think execute() makes sense:

Calling this on the cache component already implies that it's about caching something. Just like with get() or set()
execute() is correct, because the method is at least called once
Having a return value doesn't always enforce a get in the method name
get should rather be reserved to "pure" getters that define virtual properties

This argue will never end.

You're underestimating the flexibility of the community ;).
To agree on what we don't want is also a good approach to come to a result.
@SilverFire, whats your opinion about ensure?

execute is a good variant. I have no objections.

get should rather be reserved to "pure" getters that define virtual properties

Definitely not. get prefix is common practice for any getters, reserve this only for "pure" getters sound extremely impractical and probably impossible.
Also, when you have something like that:
$cache->getCached('most-popular-news', ...

You don't need to read rest of the code to know what is going on. Method name and first parameter says what you will get, rest is only implementation detail.
This:
$cache->execute(function() {
	// some
	// complex
	// code
}, 'most-popular-news');

requires much more attention to understand the code. Also execute() is far from obvious name for such logic, most people will start with get (because "get something" is what they want) and look into IDEs hints.

cannot agree more.
Getting is done 100% of the time in this function. All the secondary "fallback" logic, which is only occassionally being executed, should logically come second.

Definitely not. get prefix is common practice for any getters, reserve this only for "pure" getters sound extremely impractical and probably impossible.

Well, maybe, but that does not mean, that anything that returns a value must use the get prefix.

... requires much more attention to understand the code.

That's very arguable. Reading the code to me feels very natural: "Ok cache, execute this method here for me: ...". That it returns the evaluated value is so obvious that we don't need any getter prefix, because what else would make much sense to return?

You don't need to read rest of the code to know what is going on

Could not disagree more :). You say, the key is more important than the logic which actually fetches the data you want. Let's look at a simple real world example:
$cars = $cache->get('cars');
if ($cars === false) {
    $cars = Car::find()->active()->all();
    $cache->set('cars', $cars);
}

This would become:
$cars = $cache->execute(function() {
    return Car::find()->active()->all();
}, 'cars');

Is the cache key cars really the important part here? I think not. The interesting part is not how is it cached (under which key), but what is cached (the expensive code fragment).
And I'm not sure if this would work, but we could maybe even make the key optional and use the serialized callable as cache key if no key is provided. In this case you could simply call $cache->execute([$object, 'method']).

That it returns the evaluated value is so obvious that we don't need any getter prefix, because what else would make much sense to return?

For example, yii\db\Command::execute() does not return inserted/updated records, it returns number of updated/inserted records. So no, it is definitely not obvious what execute() should return. For me the most obvious thing is that execute() should return boolean whether execution is succeed or failed.

Is the cache key cars really the important part here?

Your example is wrong. First, you chose wrong name for key (it should be 'active-cars' or 'active-cars-models'). Second, you chose most basic usecase - in many cases cached closure will be much more complicated, valuable key name will save you lots of time spent on reading closure body.

Could not disagree more :). You say, the key is more important than the logic which actually fetches the data you want. Let's look at a simple real world example:

that's a strange example. Why would I execute something from the cache. I don't want to execute anything from the cache :).
I want to retrieve something from the cache. That's what I want. And I want to do that by key, in your example the car. And if it doesn't exist? Well, for that risk (which does not occur often because its cached), I have a fallback closure which re ensures the the cache.

Heh, interesting how one can have different views on the same problem.
Ok, another try:

I have a fallback closure which re ensures the the cache.

I think this is the root of our disagreement and I think you're wrong here: It's not at all a fallback! The callback will definitely be executed. The cache only makes sure, that this happens only once. The key is completely irrelevant - it should even be autogenerated if the cache can do this for me.
Just imagine how the story evolves:

You have some code for an operation that returns some data
You find out that the operation takes too long or eats too many resources
You decide, that you want to cache the result of the operation

Why would you now say, that the implememntation is no longer interesting and the most interesting thing is a cache key?
Nothing has changed, except that you want to cache the result. How this is cached should be hidden away as much as possible. The key is not interesting, because apart from caching the result, nothing in your operation logic has changed.
If you think you need a cache label to know what you're doing, you're doing it wrong anyway: You should have moved your operation into a method with a meaningful name. You should not use a cache key to label your code. And you will not use the cache key anywhere else. You would never use $cache->get('active-cars') or the like. So why are you so interested in the key?
If you really need a label, assign the result to a meaningful name:
$activeCars = $cache->execute([$this, 'queryActiveCarsFromRemoteApi')

You should not use a cache key to label your code. And you will not use the cache key anywhere else. You would never use $cache->get('active-cars') or the like. So why are you so interested in the key?

To invalidate cache.

You would never use $cache->get('active-cars') or the like.

I would use $cache->delete('active-cars').

If you really need a label, assign the result to a meaningful name:

So instead:
public function getActiveCars() {
    return Yii::$app->cache->getCached('active-cars', function () {
        //some code
    });
}

I need:
public function getActiveCars() {
    return Yii::$app->cache->execute([$this, 'reallyGetActiveCars']);
}

public function reallyGetActiveCars() {
    //some code
}

? And you really think that this is better solution than using cache key as label?

To invalidate cache.

That's what a dependency is for.
One final attempt then I give up.
What's the most easy and simple description what this method does in human language?
Here's the two versions that I see in this discussion:

Give me the value you have stored under X. If you don't have one, execute this method and store it under X and give it back to me.
Execute this method, give me the result and remember the result under key X for the next time when I ask you to execute it again

The first emphasises the key X. It's very close to the implementation. It's what the  getCached($key, $callback) etc. guys here like to have.
The second is an abstract human description of what this method really does for me: It executes and remembers things.
As the sole purpose of a cache is to remember things, we can leave away that part in the method name and end up with execute().

? And you really think that this is better solution than using cache key as label?

You are notoriously missing my point. The operation whose result you want to cache has a purpose. It will stay the same, no matter if you cache it or not. You should not need a cache key to describe it. It should speak for itself.
 Now suddenly you don't have a cache key anymore. Are you telling me, that you now don't understand your code anymore, because the cache key that labels your code is gone?
In your scenario you're abusing this method to stick a label on it. All I say: If you think your code is so complex that you don't understand it without a label, put it inside another method. But you should do this anyway then! It has nothing to do with the method we discuss here.

That's what a dependency is for.

In many cases using delete() is easier and faster that using dependencies.

All I say: If you think your code is so complex that you don't understand it without a label

I'm not talking about "I don't understand this code, so I need a label". I'm talking about "I don't want waste 5 seconds every time when read this code part - label will save me 4.5 second of this time". :) Cache keys have the same profits than extracting code to separate methods, but it does not force specific implementation.

In many cases using delete() is easier and faster that using dependencies.

You still have a cache key. It's just not the main information.
We even have other places in the framework were you don't have any cache key at all:
$result = $db->cache(function ($db) {
    return $db->createCommand('SELECT * FROM customer WHERE id=1')->queryOne();
});

As we all know, there are only tho hard things in computer since: cache invalidation and naming things [©}(http://martinfowler.com/bliki/TwoHardThings.html). Now I can say for sure: naming cache-related things is the worst :smiley:
Thank you, community, for sharing your opinions in this PR. As long as there is no general agreement on the method name, @yiisoft/core-developers team decided to vote internally.
The following method names were put to vote:

ensure()
remember()
execute()
closure()
cached()
getCached()
getOrSet()
getSet()

I will publish a final decision and voters statistics as soon as it possible.
For now I'm locking the conversation to prevent time additional time spends for this argue.

Results:

Method name
Voters

cached()
1: @samdark

getSet()
1: @dynasource

ensure()
1: @dynasource

getCached()
2: @dynasource, @samdark

getOrSet()
4: @silverfire, @samdark, @mdomba, @qiangxue

other
no votes

@klimov-paul and @cebe have abstained from voting.

Merged: https://github.com/yiisoft/yii2/commit/aed3a222a20edd14859053a45b6b62889ca41a59
Thank you, community, for active participating in this Pull Request.