"error: not found: object $(somehex)"

sbt version : 1.7.2
steps
github actions (self hosted runner).
problem
/path/to/my/project/subproject1/build.sbt:0: error: not found: object $3572535fcafeb4da8716
import $3572535fcafeb4da8716._

Originally posted by @deepakmbr in https://github.com/sbt/sbt/issues/1465#issuecomment-1301980560

@deepakmbr Do you have project/build.properties file specifying the sbt version?

@eed3si9n Yes, we do have that file specifying the version to 1.7.2

I think GitHub Action can run post step as a cleanup. Could you show:
ls project/target/config-classes

Also I wonder if there's some kind of symlink or Docker binding along your path such that when sbt compiles build.sbt expressions into bytecode in the directory, it's going somewhere else.

I have update the pipeline with the ls . The next time the build fails, will provide the info.
Just FYI. We have like 10 sub-projects, and for each project we have a separate job in the workflow. I am not sure if this would anything to do with error maybe ?
jobs:
  job1:
    run: sbt project1/test
  job2:
    run: sbt project2/test

You can do something like:
      run: |
        sbt project1/test || true
        ls project/target/config-classes
        sbt project1/test

The $76eca63353604f2dbc14 seems to be present in the project/target/config-classes directory.
[info] loading settings for project subproject7 from build.sbt ...
[info] loading settings for project subproject8 from build.sbt ...
/path/to/project/subproject5/build.sbt:0: error: not found: object $76eca63353604f2dbc14
import $76eca63353604f2dbc14._
       ^
/path/to/project/subproject5/build.sbt:34: error: not found: value prometheusVersion
  "io.prometheus" % "simpleclient" % prometheusVersion,
                                     ^
/path/to/project/subproject5/build.sbt:35: error: not found: value prometheusVersion
  "io.prometheus" % "simpleclient_hotspot" % prometheusVersion,
                                             ^
/path/to/project/subproject5/build.sbt:36: error: not found: value prometheusVersion
  "io.prometheus" % "simpleclient_httpserver" % prometheusVersion,
                                                ^
/path/to/project/subproject5/build.sbt:37: error: not found: value prometheusVersion
  "io.prometheus" % "simpleclient_pushgateway" % prometheusVersion,
                                                 ^
Error:  Type error in expression
[warn] Project loading failed: (r)etry, (q)uit, (l)ast, or (i)gnore? (default: r)
make: *** [Makefile:50: compose] Error 1
total 540K
-rw-r--r-- 1 user group 5.6K Nov  3 19:17 $5e1f4f0043649f1f3ac0$.class
-rw-r--r-- 1 user group   21 Nov  3 19:17 $5e1f4f0043649f1f3ac0.cache
-rw-r--r-- 1 user group  614 Nov  3 19:17 $5e1f4f0043649f1f3ac0.class
-rw-r--r-- 1 user group 5.2K Nov  3 19:17 $67fba2dc0e9ed1ec90c1$.class
-rw-r--r-- 1 user group   21 Nov  3 19:17 $67fba2dc0e9ed1ec90c1.cache
-rw-r--r-- 1 user group  622 Nov  3 19:17 $67fba2dc0e9ed1ec90c1.class
-rw-r--r-- 1 user group 2.8K Nov  3 19:17 $731b4caeed6a5240c442$.class
-rw-r--r-- 1 user group   21 Nov  3 19:17 $731b4caeed6a5240c442.cache
-rw-r--r-- 1 user group  616 Nov  3 19:17 $731b4caeed6a5240c442.class
-rw-r--r-- 1 user group 1.4K Nov  3 19:17 $76eca63353604f2dbc14$.class
-rw-r--r-- 1 user group    0 Nov  3 19:17 $76eca63353604f2dbc14.cache
-rw-r--r-- 1 user group  778 Nov  3 19:17 $76eca63353604f2dbc14.class
-rw-r--r-- 1 user group 2.3K Nov  3 19:17 $7a3d2f5e47c1691b4ccd$.class
-rw-r--r-- 1 user group   21 Nov  3 19:17 $7a3d2f5e47c1691b4ccd.cache
-rw-r--r-- 1 user group  618 Nov  3 19:17 $7a3d2f5e47c1691b4ccd.class
-rw-r--r-- 1 user group  564 Nov  3 19:17 $87aa56b1a9cdeb061dd6$.class
-rw-r--r-- 1 user group    0 Nov  3 19:17 $87aa56b1a9cdeb061dd6.cache
-rw-r--r-- 1 user group  635 Nov  3 19:17 $87aa56b1a9cdeb061dd6.class

The log seems to indicate that two jobs on the same build are running concurrently. During the loading time sbt would probably temporarily back out the project/target/config-classes directory as it recompiles the metabuild.
So if you want concurrent job, you'd need them to have separate disk state, e.g. by putting them in a different directory.

The jobs are not run concurrently, the jobs are executed sequentially on the same runner.
job1: run sbt test on subproject1
job2: run sbt test on subproject3
.
.
.
job3: run sbt test on subproject9

Any progress on this issue? I am seeing similar behavior on SBT 1.8.2 when running in my CI (Github Actions Self-Hosted Runners) setup.
Links:
https://github.com/ucb-bar/chipyard/actions/runs/5016546989/jobs/8993961669#step:6:748
https://github.com/ucb-bar/chipyard/actions/runs/5016546989/jobs/8993961470#step:6:739
https://github.com/ucb-bar/chipyard/actions/runs/5016546989/jobs/8993962053#step:6:733
For some context, I am running 3 Github Actions Self-Hosted runners that check out my code base and run sbt assembly within each. Each runner should have a different path to the repo where SBT is run.
Here are some of the options that I run SBT with: https://github.com/ucb-bar/chipyard/blob/c4bb06b061e7ef9ddf41c212e114373efb24424e/variables.mk#L223


Cannot push tags that contain +?

When trying to push I get:
Error: HEAD https://123456789012.dkr.ecr.eu-west-2.amazonaws.com/v2/repo/manifests/2024.42.40+8f9dd6963: unexpected status code 400 Bad Request (HEAD responses have no body, use GET for details)

However, it works if my tag is test instead.
Perhaps the + is the issue?

+ is not allowed in Docker tags
Interestingly, this means that you cannot put a sem-ver into a Docker tag!
https://github.com/distribution/distribution/issues/1201


Actions: Add missing runs-on (managing complex workflows)

Also fix indentation in another example
Why:
The adjacent jobs have runs-on keys. The one job missing it caused confusion:
https://github.community/t/reusing-sharing-inheriting-steps-between-jobs-declarations/16851/19?u=simran-b
What's being changed:
Add runs-on: ubuntu-latest. Also fix indentation in another example.
Check off the following:

[x] All of the tests are passing.
[x] I have reviewed my changes in staging.
[x] For content changes, I have reviewed the localization checklist
[x] For content changes, I have reviewed the Content style guide for GitHub Docs.

Thanks @Simran-B! I'll get this triaged for review 🌟

Thank you


Recomendation

Issue Type: Bug
Every time i save my python file i get a recommendation to download a formatter (thats from the Python extension).
I pressed yes but it couldnt be downloaded so i tried to mute it, i mute the python extension and the extensions in general from the settings tab and still this recommendation occurs every time i save my file...
Thats really anoying
Extension version: 2021.2.582707922
VS Code version: Code 1.54.1 (f30a9b73e8ffc278e71575118b6bf568f04587c8, 2021-03-04T22:38:31.419Z)
OS version: Windows_NT x64 10.0.18363

System Info

Item
Value

CPUs
AMD Ryzen 7 2700X Eight-Core Processor          (16 x 3693)

GPU Status
2d_canvas: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: enabledopengl: enabled_onprotected_video_decode: unavailable_offrasterization: enabledskia_renderer: enabled_onvideo_decode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
15.93GB (7.08GB free)

Process Argv
--crash-reporter-id 5aa990d6-269e-4533-ba15-60ba1334ffa1

Screen Reader
no

VM
0%

A/B Experiments
vsliv368cf:30146710
vsreu685:30147344
python383:30185418
vspyt653:30253241
vspor879:30202332
vspor708:30202333
vspor363:30204092
vswsl492:30256859
vstry244:30256636
pythonvsdeb440:30248342
pythonvsded773:30248341
pythonvspyt875:30259475
dockersubsetcf:30265999
vspre833:30267464

Hi @Papajohn77, thank you for reaching out.
What do you mean by muting the extension, how did you do that?
What error did you get when you tried to install a formatter? Could you copy here the content of the Python tab in the Output panel (View→Output, change the drop-down the upper-right of the Output panel to Python)?
Thank you!

I always use GitBash terminal but this problem just happen a month ago.  I change to cmd.exe temporary and able to install black and switch back to gitBash.  No longer receive the annoying popup.   Thank you very much.

Glad to hear you managed to install it! I will mark this issue as resolved and close it, feel free to leave a comment here or open a separate issue if you encounter any further problems down the road 🙂

Oh sorry @Papajohn77 I closed it too early, does it work for you?

Yes, you can close it


Counter Cache when using STI throws: You have a nil object when you didn't expect it!

The model uses Single Table Inheritance. If the type column is blank, the issue does not occur.
In model:
is_impressionable :counter_cache => { :column_name => :view_counter_cache }
You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.[]
Backtrace:
impressionist (1.0.1) app/models/impressionist/impressionable.rb:47:in update_counter_cache' activesupport (3.1.3) lib/active_support/core_ext/object/try.rb:32:in try'
impressionist (1.0.1) app/models/impression.rb:13:in update_impressions_counter_cache' activesupport (3.1.3) lib/active_support/callbacks.rb:401:in _run_save_callbacks'
activesupport (3.1.3) lib/active_support/callbacks.rb:81:in run_callbacks' activerecord (3.1.3) lib/active_record/callbacks.rb:264:in create_or_update'
activerecord (3.1.3) lib/active_record/persistence.rb:37:in save' activerecord (3.1.3) lib/active_record/validations.rb:50:in save'
activerecord (3.1.3) lib/active_record/attribute_methods/dirty.rb:22:in `save'

I have worked around the issue by specifying the is_impressionable :counter_cache => ....  in each STI model subclass.
Preferably this is would not be needed :)

I agree, you should not need to re-specify in the subclasses.  I'll have a look at it over the next few days to see if we can make this smarter.


Adding classical Bose–Chaudhuri–Hocquenghem code to ECC module

Adding classical Bose–Chaudhuri–Hocquenghem code to ECC module

Thanks for your comments. I have significantly improved the doc-strings and made 1 commit/push.
I hope you like the descent from Finite Fields back to the Boolean Field when reviewing!

Results:
Test Summary:          | Time
ecc_decoder_all_setups | None  27.7s
Test Summary: | Pass  Total  Time
ecc_encoding  |  238    238  0.9s
Test Summary: |  Pass  Total  Time
ecc_gottesman | 24562  24562  0.2s
Test Summary:  | Pass  Total  Time
ecc_reedmuller |   19     19  0.8s
Test Summary: | Pass  Total  Time
ecc_bch       |   36     36  2.7s
Test Summary: | Pass  Total  Time
ecc_syndromes |  176    176  3.5s
Test Summary: | Pass  Total  Time
ecc_throws    |    4      4  0.0s
Test Summary: |Time
precompile    | None  0.3s
┌ Warning: The operation is of a type that can not be unified, defaulting to slower runtime dispatch
│   typeof(g) = NoiseOp{UnbiasedUncorrelatedNoise{Float64}, 1}
└ @ QuantumClifford ~/Desktop/New/bch/QuantumClifford.jl/src/sumtypes.jl:77
┌ Warning: The operation is of a type that can not be unified, defaulting to slower runtime dispatch
│   typeof(g) = NoiseOp{UnbiasedUncorrelatedNoise{Float64}, 1}
└ @ QuantumClifford ~/Desktop/New/bch/QuantumClifford.jl/src/sumtypes.jl:77
Test Summary: | Pass  Total  Time
pauliframe    |   93     93  6.0s
Test Summary: | Pass  Total  Time
allocations   |   39     39  7.4s
[ Info: SetupBuildDirectory: setting up build directory.
[ Info: Doctest: running doctests.
[ Info: Skipped ExpandTemplates step (doctest only).
[ Info: Skipped CrossReferences step (doctest only).
[ Info: Skipped CheckDocument step (doctest only).
[ Info: Skipped Populate step (doctest only).
[ Info: Skipped RenderDocument step (doctest only).
Test Summary: | Pass  Total   Time
doctests      |    1      1  14.6s
Skipping Base.active_repl
Skipping Base.active_repl_backend
Test Summary: | Pass  Total   Time
aqua          |   11     11  19.0s
     Testing QuantumClifford tests passed

@Krastanov, Could you please help review the open PRs? Thanks.

BCH code (15, 2)
Parity Check Matrix: H
julia> parity_checks(BCH(15,2))
8×15 Matrix{Bool}:
 1  0  0  0  1  0  0  1  1  0  1  0  1  1  1
 0  1  0  0  1  1  0  1  0  1  1  1  1  0  0
 0  0  1  0  0  1  1  0  1  0  1  1  1  1  0
 0  0  0  1  0  0  1  1  0  1  0  1  1  1  1
 1  0  0  0  1  1  0  0  0  1  1  0  0  0  1
 0  0  0  1  1  0  0  0  1  1  0  0  0  1  1
 0  0  1  0  1  0  0  1  0  1  0  0  1  0  1
 0  1  1  1  1  0  1  1  1  1  0  1  1  1  1

HField Matrix:

2×15 Matrix{FqFieldElem}:
 1  a    a^2        a^3      a + 1              a^2 + a  a^3 + a^2  …  a^3 + a^2 + 1  a^3 + 1
 1  a^3  a^3 + a^2  a^3 + a  a^3 + a^2 + a + 1  1        a^3           a^3 + a        a^3 + a^2 + a + 1

julia> GF2, a = finite_field(2, 4, "a")
(Finite field of degree 4 and characteristic 2, a)

julia> a^42
a^3 + a^2 + a + 1

julia> a^39
a^3 + a

julia> a^12
a^3 + a^2 + a + 1

julia> a^9
a^3 + a

julia> a^14
a^3 + 1

julia> a^13
a^3 + a^2 + 1

BCH code (15, 2)
Parity Check Matrix: H
julia> parity_checks(BCH(15,2))
8×15 Matrix{Bool}:
 1  0  0  0  1  0  0  1  1  0  1  0  1  1  1
 0  1  0  0  1  1  0  1  0  1  1  1  1  0  0
 0  0  1  0  0  1  1  0  1  0  1  1  1  1  0
 0  0  0  1  0  0  1  1  0  1  0  1  1  1  1
 1  0  0  0  1  1  0  0  0  1  1  0  0  0  1
 0  0  0  1  1  0  0  0  1  1  0  0  0  1  1
 0  0  1  0  1  0  0  1  0  1  0  0  1  0  1
 0  1  1  1  1  0  1  1  1  1  0  1  1  1  1

HField Matrix:

2×15 Matrix{FqFieldElem}:
 1  a    a^2        a^3      a + 1              a^2 + a  a^3 + a^2  …  a^3 + a^2 + 1  a^3 + 1
 1  a^3  a^3 + a^2  a^3 + a  a^3 + a^2 + a + 1  1        a^3           a^3 + a        a^3 + a^2 + a + 1

julia> GF2, a = finite_field(2, 4, "a") (Finite field of degree 4 and characteristic 2, a)

julia> a^42
a^3 + a^2 + a + 1

julia> a^39
a^3 + a

julia> a^12
a^3 + a^2 + a + 1

julia> a^9
a^3 + a

julia> a^14
a^3 + 1

julia> a^13
a^3 + a^2 + 1

This should be part of the tests, not just a comment on the pull requests (it is one of the todos I have listed in the review). Make sure these tests have references to where the example is taken from.

I also tried to run a few examples, and I am getting some strange results for some parameter regimes. E.g. the following:
julia> parity_checks(BCH(7,4)) |> size
(12, 7)

This does not make sense to me. A parity check matrices should have fewer rows than columns.

I made a mistake in the setting the bound of t. After reading the slides, the  m >= 3 and t < 2^(m -1 ).  n = Block length: n = 2^m − 1.
When m =3, we have n=7, and GF(2^3).
When n =7 is actually 2^3 - 1, GF(8), so m = 3. Now, t must be < 2^(3 - 1) so t < 4. (7, 4) is not a valid instance of the code and the bound is set incorrectly.  I have set it to t <= 2^(m - 1) so that why the invalid instance (7, 4) is not throwing the error.
So, the m =3, the valid codes are (7, 1),  (7, 2)  and (7, 3) as t should be less than 2^(m - 1) as per the formula!
 I have incorporated all your suggestions.
Test Summary:          | Time
ecc_decoder_all_setups | None  26.6s
Test Summary: | Pass  Total  Time
ecc_encoding  |  238    238  0.6s
Test Summary: |  Pass  Total  Time
ecc_gottesman | 24562  24562  0.2s
Test Summary:  | Pass  Total  Time
ecc_reedmuller |   19     19  0.8s
Test Summary: | Pass  Total  Time
ecc_bch       |   51     51  2.5s
Test Summary: | Pass  Total  Time
ecc_syndromes |  176    176  3.2s
Test Summary: | Pass  Total  Time
ecc_throws    |    4      4  0.0s
Test Summary: |Time
precompile    | None  0.2s
Test Summary: | Pass  Total  Time
pauliframe    |  106    106  5.5s
Test Summary: | Pass  Total  Time
allocations   |   39     39  6.3s

Test Summary: | Pass  Total   Time
doctests      |    1      1  14.3s
Skipping Base.active_repl
Skipping Base.active_repl_backend
Test Summary: | Pass  Total   Time
aqua          |   11     11  19.4s
     Testing QuantumClifford tests passed

I see you have requested a review but then you also made quite a few changes after the request. It is not uncommon for this to happen as you think of some other things to improve. I usually try to wait a day if I am unsure I whether I will be making more changes, and request the review only after that day has passed.
I am converting this back to a draft so that you have a way to signal when you are done. Convert it to non-draft and request a review when you think it is ready.

I am converting this back to a draft so that you have a way to signal when you are done. Convert it to non-draft and request a review when you think it is ready.

Yeah, waiting a day sounds better. A lot of "I could also do this or that" signals are popping" so that's why a quite a few stylistic changes are being done today. I will wait a day to make sure the cosmic background disappear!

Apparently, I forgot to change the page numbers from 202, 203 to 168, 169.

Fixed the page numbers as well. I have polished this up as well!

This is great! I removed a minor part of the docstring that I do not understand well. I do not want to keep you waiting on a merge over such a minor thing, given that the rest seems already very polished. If you consider that part of the docstring important, we can discuss it over a separate pull request.
Do you want me to start reviewing a specific next pull request? I see you have submitted a few, but I am not sure which one you would like to start with.

Woohoo!

Do you want me to start reviewing a specific next pull request?

Please review Reed-Solomon next!


Not attaching on apps on deny list when enforcing Magisk denylist

I'm currently using Magisk Alpha. As the title says, when Enforce Denylist is on and the app is on the deny list, this won't attach the lib. Pardon my ignorance, I don't know if I should post it as an issue as I am ignorant of the behavior of Enforce Denylist.

Hey,
Just checking the official magisk (I am guessing alpha is the same with additional hiding stuff)
https://github.com/topjohnwu/Magisk/blob/877aeb66cb714b25dc86411673b5030ce0c5f5f5/native/src/zygisk/hook.cpp#L560-L565
Enabling denylist will stop any zygisk modules from running on that particular app.
So you might have to use a different root hiding method that still allows zygisk to run.
I am currently using Magisk Delta with MagiskHide enabled. There are probably other ways (shamiko etc) that might have varying degree of success. But I have not tested these methods.
Anyways ZygiskFrida requires zygisk to run and Denylist will stop it from running, there is nothing I can do here so I will be closing this issue.


Weapon Poison (++) not showing dose count

As you can see in screenshot below, it doesn't show doses for Weapon Poison (++)

With the plugin disabled, it does show:

Seems like it is because Weapon poison is a "Quantity" not a "Doses"
Haven't tested for any other weapon poison variants, so might be worth checking those.
Thanks!

Fixed, along with unfinished potions! Changes should go live sometime today


Add revert messages in callcontract and gettransactionreceipt

Update callcontract and gettransactionreceipt to show the revert message:
    "gasUsed": 21518,
    "excepted": "Revert",
    "exceptedMessage": "CapperRole: caller does not have the Capper role"

The gas used is not changed because the test examples did not show 100% gas consumption.
The revert message is the message from the exception.

@timemarkovqtum can we also add this for callcontract?

@hayeah It is present in both RPCs. callcontract call the function executionResultToJSON to get the revert message in exceptedMessage.

@timemarkovqtum sorry I misread the diff, i didn't realize that exceptedMessage was shared by both RPC calls.
looks good to me now!


An independent developer can authenticate their application using OAuth 2.0

Acceptance criteria:

[ ] Developers can authenticate their application using an OAuth token.
[ ] When authentication is successful, a JWT is supplied to the application.

Test case (Independent Test Application):

[ ] Authenticate an independent application using an OAuth token, and check if the authentication was successful.

Closing this in favor of other "core" features (e.g. more custom content etc) instead of oauth stuff.


add codecov badge

add codecov badge in README.md

Welcome to Codecov :tada:
Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests.
Thanks for integrating Codecov - We've got you covered :open_umbrella:


Assign graph to cpu in example/udacity/5_word2vec.

Here's what I think is a fix for 1297. Please see the issue for discussion.
If there's a way to do this without all the whitespace changes please let me know. I'm new to Python. The only real change is addition of the with tf.device(): statement.

Can one of the admins verify this patch?

Signed CLA.

May I ask you to do it on one line instead:

Sure thing Dr. V. There you go.


ARIA-353 Add node template directives

The directives field already existed in the presentation level, but it
needed to be added to the node template model.

Can one of the admins verify this patch?


⚠ SceneTime has degraded performance

In 9688652, SceneTime ($ST) experienced degraded performance:

HTTP code: 200
Response time: 1141 ms

Resolved: SceneTime performance has improved in 91fe2ff after 20 minutes.


Can't install extensions in brackets  1.2.0-15697 on kubuntu 14.04

I can't install extensions, either manually or automatically. Others have reported a similar issue (https://github.com/adobe/brackets/issues/10266), but their solutions haven't help me.
I have an etc/hosts file and pinging local host returns <IP_ADDRESS> as the ip address
Developers tools console output:

Download the React DevTools for a better development experience: http://fb.me/react-devtools /thirdparty/react.js:4356
[Extension] Error -- could not read native directory: /home/username/.config/Brackets/extensions/user /utils/ExtensionLoader.js:338
NodeSocketTransport - start /LiveDevelopment/MultiBrowserImpl/transports/NodeSocketTransport.js:87
4
Unknown installation error extensionManager domain is undefined /extensibility/Package.js:408

I'm a bit new to all of this, but the error seems to suggest that brackets needs the following path/file:
/home/username/.config/Brackets/extensions/user /utils/ExtensionLoader.js:338
However, this file isn't present. The .config/Brackets only has: cef_data (directory) and state.json (file), and that's it.

Were you able to solve your problem?

I close this issue since there wasn't an answer.


Unicode 14.0.0 support (tables only)

Let's see what's missing and then decide on the new home for the code generator.
The tables were generated by running ./run.d from:
https://github.com/DmitryOlshansky/gen-uni-dlang

Oh it's just 42k LoC of diff, LGTM! (/s)
CI says no:
std/uni/package.d(10621): Error: undefined identifier `toLowerSimpleIndexTrieEntries`
std/uni/package.d(10622): Error: undefined identifier `toTitleSimpleIndexTrieEntries`
std/uni/package.d(10620): Error: undefined identifier `toUpperSimpleIndexTrieEntries`

I think it would be nice if we could have a link to your gen.d file inside the source code as well, like at the top of the module in a comment explaining that this file is auto generated. Maybe in std.internal.unicode_tables where there is already a header where this could fit or maybe just in all of them a short note could be added

CI says no:

Yeah, and thankfully it’s simple casefolding stuff that’s missing I thought it was something more complicated.
Will get back to it today.

I think it would be nice if we could have a link to your gen.d file inside the source code as well, like at the top of the module in a comment

I think it shall go inside of Phobos repo honestly, as all of the build helpers do. And we should generate the tables IMHO, dropping them from git and add the source *.txt data files from Unicode instead.

The bugzilla issue is: https://issues.dlang.org/show_bug.cgi?id=16416

Not that I'm an expert, but out of curiosity why does the code pass "auto-tester" tests for "Darwin_64_32" but not for the other configurations? Is there a machine dependence in Unicode?

Not that I'm an expert, but out of curiosity why does the code pass "auto-tester" tests for "Darwin_64_32" but not for the other configurations? Is there a machine dependence in Unicode?

As stated in the log file:
echo "Darwin_64_32_disabled"
Darwin_64_32_disabled

Okay, almost there. Will do a few finishing touches and it'll be ready to go.
Speaking of code generator - it'll be tricky to integrate into the Makefile at this point as it needs both 32 and 64 bit tables and by default these use machine word as the last level item. The way out I think is one of two:

Just use 32-bit uint as the last level table item, it shouldn't matter much in practice.
Fix things up a bit to be able to use uint or ulong as the last level table item type explicitly.

Whatever it is I think it's out of scope and is not required to get this merged. I'll put the link to the repo in the header of every file but I think it should be transffered to DLang org first.

it'll be tricky to integrate into the Makefile

It'd be preferable to utilise the dmd build.d build scripts of possible.
Also note that the doctester currently fails for all PRs and is unrelated. it is unfortunately required.

Did we switch to build.d script? Coool. I've come out of a fridge after time-traveling for a little while ;)

Spoiler is : D is 2nd most popular language for system-level stuff in 2030. I did not tell any that, just a thought )

stated in the log file:
echo "Darwin_64_32_disabled"
Darwin_64_32_disabled

Ah, ok... makes it a bit hard to understand/asses the results, if there are tests listed, which fail because they can't run anyway.

So, any idea how to move forward with this PR?

@DmitryOlshansky I cross-checked with Atila how to get this PR into Phobos.
Since this PR is quite extensive and requires a lot of know-how to be reviewed, which Atila doesn't have, we agreed on, that if the PR passes the tests, it will be merged.
I'm confused by the results of the checks and if this needs further action or not. Does anyone know or can find out?
@atilaneves The PR states that merging can be done automatically if it's approved. Not sure if all the tests need to pass first.

Not sure if all the tests need to pass first.

They do.

@thewilsonator Can you enlighten me on how you recognize this? I see 6 failing and 2 successful checks. Where two marked "require" failed.

The ones marked "required" must pass. Also any breakage on buildkite, where community projects are tested, should also be dealt with. I presume the azure failures will get fixed as part of the rest.

To clarify: in general all CIs must pass, but some have the tendency to regularly break due to a various reasons (e.g. buildkite when someone updates a package), hence they aren't marked as required so that in such an event or spurious failure a reviewer can still merge the PR.
So the required CIs are just the ones which generally don't have spurious failures.

Ok, thanks.
The auto-tester seems to run every day not only on-demand after a change. I don't understand why sometimes a Linux round is in the list and it's missing on newer rounds... All very confusing or at least not straight forward to understand.
And I understand that only the Darwin_64_64 case fails with this error:
std/uni/package.d(6709): Error: static assert:  "No unicode set by name Currency_Symbol was found."
std/uni/package.d(757):        instantiated from here: `opDispatch!"Currency_Symbol"`

@DmitryOlshansky Is there a file (for a table) missing? It would be great if you could have a look so this PR is not hanging around for too long.

Okay, I’ve been out for a while, will fix missing aliases shortly.

@DmitryOlshansky What is the status of this PR?

Ping @DmitryOlshansky

Taken over by Rikki https://github.com/dlang/phobos/pull/8617


Add Bitgree

Add Bitgree

Thanks for the contribution!
I moved this above purse and the bitpay directory, but below the more general introductory links for accepting Bitcoin Cash.


Docker container exits with code 139

Hi.
I have been unable to get a channel to publish a message in a webserver application. The application crashes (in docker with exit code 139).
I have both producer and consumer in my application. The consumer (exchange, queue and consumption) is setup in a websocket route. The producer is publishes a message when a route handler is called.
Here is my TcpHandler monitor() callback:

void TcpHandler::monitor(AMQP::TcpConnection* connection, int fd, int flags)
{
    /* Logging */
    std::cout << "AMQP::TcpConnection onMonitor.\n\n";
    std::cout << "The value of flags is: " << flags << "\n\n";

	if (flags == 0)
    {
    	return;
    }

    if (flags & AMQP::readable)
    {
        FD_SET(fd, &m_set);
        m_fd = fd;
        m_flags = flags;
    }
}

The following code is in the main() function.
/* TcpHandler instantiate object */
	TcpHandler publisherHandler;
	TcpHandler consumerHandler;

	/* Rabbitmq server address */
	AMQP::Address address("amqp://guest:guest@rabbitmq:5672/");

	/* Make a publisher connection */
	AMQP::TcpConnection publisherConnection(&publisherHandler, address);

	/* Create a publisher channel */
	AMQP::TcpChannel publisherChannel(&publisherConnection);

	/* Call back when channel encounters error of any kind */
	publisherChannel.onError([](const char *message) {
	    // report error
	    std::cout << "Publisher channel error: " << message << std::endl;
	});

	/* install a generic callback that will be called when the channel is ready
	   for sending the first instruction.
	*/
	publisherChannel.onReady([]() {

	    // send the first instructions (like publishing messages)
	    std::cout << "Publisher Channel is ready\n";
	});

	/* Make a consumer connection */
	AMQP::TcpConnection consumerConnection(&consumerHandler, address);

	/* Create a consumer channel */
	AMQP::TcpChannel consumerChannel(&consumerConnection);

	consumerChannel.onError([](const char *message) {
	    // report error
	    std::cout << "Consumer channel error: " << message << std::endl;
	});

	// install a generic callback that will be called when the channel is ready
	// for sending the first instruction
	consumerChannel.onReady([]() {

	    // send the first instructions (like publishing messages)
	    std::cout << "Consumer Channel is ready\n";
	});

	/* Worker thread for amqp-read */
	std::thread([&]() {
		while (true)
		{
			auto start = std::chrono::steady_clock::now();

			amqp_read(publisherHandler, publisherConnection);
			amqp_read(consumerHandler, consumerConnection);

			send_hearbeat(publisherConnection);
			send_hearbeat(consumerConnection);

			auto end = std::chrono::steady_clock::now();
			auto elapsed = end - start;
			std::this_thread::sleep_for(elapsed);
		}
	}).detach();

The amqp_read(TcpHandler*, TcpConnection*) is a function for filedescriptors
std::string amqp_read(TcpHandler& tcp_handler, AMQP::TcpConnection& connection)
{
	int result = 0;
	int max_fd = 1;

	struct timeval tv
	{
		1, 0
	};

	std::string return_value;
	std::string message;

	try
	{
		FD_ZERO(&tcp_handler.m_set);
		FD_SET(tcp_handler.m_fd, &tcp_handler.m_set);

		if (tcp_handler.m_fd != -1)
		{
			max_fd = tcp_handler.m_fd + 1;
		}

		result = select(FD_SETSIZE, &tcp_handler.m_set, NULL, NULL, &tv);

		if ((result == -1) && errno == EINTR)
		{
			/* Logging */
			printf("Error in socket\n");
		}

		else if (result > 0)
		{
			if (tcp_handler.m_flags & AMQP::readable)
			{
				//printf("Got something\n");
			}

			if (FD_ISSET(tcp_handler.m_fd, &tcp_handler.m_set))
			{
				connection.process(tcp_handler.m_fd, tcp_handler.m_flags);
			}
		}
	}
	catch (const std::exception& e)
	{
		std::cout << e.what() << "\n";
	}

	return "";
}

/* Declare an exchange and a queue on the broker and listen for messages */
			AMQP::Table arguments;
			arguments["x-message-ttl"] = 120 * 1000;
			consumerChannel.declareExchange("client-unique-id", AMQP::direct, AMQP::autodelete + AMQP::durable)
				.onSuccess([](){
					/* Logging */
					std::cout << "Consumer channel exchange created successfully\n";
				});
			consumerChannel.declareQueue("client-unique-id", AMQP::durable + AMQP::autodelete, arguments)
				.onSuccess([](const std::string& name, uint32_t messageCount, uint32_t consumerCount){
					/* Logging */
					std::cout << "Consumer channel queue created successfully: " << name << "\n";
				});

			consumerChannel.bindQueue("client-unique-id", "client-unique-id", "client-unique-id")
				.onSuccess([](){
					/* Logging */
					std::cout << "Consumer channel bindQueue successful.\n";
				})
				.onError([](const char* message){
					/* Logging */
					std::cout << "Consumer channel bindQueue encountered error: " << message << "\n";
				})
				.onFinalize([](){
					/* Logging */
					std::cout << "Consumer channel bindQueue onFinalize.\n";
				});;

			consumerChannel.consume("client-unique-id")
				.onSuccess([](const std::string& tag) {
					/* Logging */
					std::cout << "Started consuming messages under tag: " << tag << "\n";
				})
				.onReceived([&consumerChannel, &conn](const AMQP::Message& message, uint64_t deliveryTag, bool redelivered) {
					/* Logging */
					std::cout << "message received: " << message.body() << "\n";

					// acknowledge the message
					consumerChannel.ack(deliveryTag);

					/* Send the message to the connected client */
					conn.send_text(message.body());

					/* cleanup resource */
					consumerChannel.purgeQueue("client-unique-id");
					consumerChannel.removeQueue("client-unique-id");
					consumerChannel.removeExchange("client-unique-id");

					conn.close();
				})

/* Verify exchange and queue on the broker and publish a message */
		AMQP::Table arguments;
		arguments["x-message-ttl"] = 120 * 1000;
		publisherChannel.declareExchange("client-unique-id", AMQP::direct, AMQP::passive)
			.onSuccess([](){
				/* Logging */
				std::cout << "Exchange verified successfully\n";
			});
		publisherChannel.declareQueue("client-unique-id", AMQP::passive, arguments)
			.onSuccess([](const std::string& name, uint32_t messageCount, uint32_t consumerCount){
				/* Logging */
				std::cout << "Queue verified successfully: " << name << "\n";
			});

		publisherChannel.bindQueue("client-unique-id", "client-unique-id", "client-unique-id")
			.onSuccess([](){
				/* Logging */
				std::cout << "Publisher channel bindQueue successful.\n";
			})
			.onError([](const char* message){
				/* Logging */
				std::cout << "Publisher channel bindQueue encountered error: " << message << "\n";
			})
			.onFinalize([](){
				/* Logging */
				std::cout << "Publisher channel bindQueue onFinalize.\n";
			});

		try
		{
			/* Logging */
			std::cout << "I am inside try-catch block\n";

			publisherChannel.startTransaction();

			publisherChannel.publish("client-unique-id", "client-unique-id", "decoded_response", AMQP::mandatory);

			publisherChannel.commitTransaction()
				.onSuccess([]{
					/* Logging */
					std::cout << "Message published successfully.\n";
				})
				.onError([](const char* message){
					/* Logging */
					std::cout << "Error publishing message: " << message << "\n";
				});
		}
		catch (const std::exception& e)
		{
			/* Logging */
			std::cout << "I am inside the catch block\n";

			std::cerr << "Exception: " << e.what() << "\n";
		}

How can I resolve this please. Thanks.

As you may have read in many places here, the objects in this library are not thread safe. Can you please send in the shortest possible example program without no use of threads that demonstrates this bug? With all this unnecessary extra complexity in your code I assume that the problem is probably related to your code violating the requirement to not access the same connection from more than one thread at the same time.

@EmielBruijntjes  Thanks for pointing that out. How can I correctly implement the monitor function to work properly. I can't seem to make it work.
Here is a snippet of my code.
main.cpp
std::string amqp_read(TcpHandler& handler, AMQP::TcpConnection *connection)
{
	int result = 0;
        int max_fd = 1;

    struct timeval tv
    {
        1, 0
    };

    try
    {

        FD_ZERO(&handler.m_set);
        FD_SET(handler.m_fd, &handler.m_set);

        if (handler.m_fd != -1)
        {
            max_fd = handler.m_fd + 1;
        }

        result = select(FD_SETSIZE, &handler.m_set, NULL, NULL, &tv);

        if ((result == -1) && errno == EINTR)
        {
            std::cout << "Error in socket\n";
        }
        else if (result > 0)
        {
            if (handler.m_flags & AMQP::readable)
                std::cout << "Got something\n";

            if (FD_ISSET(handler.m_fd, &handler.m_set))
            {
                connection->process(handler.m_fd, handler.m_flags);
            }
        }

    }
    catch (const std::exception e)
    {
        std::cout << e.what() << "\n";
    }

    return "";

}

int main()
{
Webserver app;
TcpHandler handler;

/* Rabbitmq server address */
AMQP::Address address("amqp://guest:guest@rabbitmq:5672/");

/* Make a connection */
AMQP::TcpConnection connection(&handler, address);
amqp_read(handler, &connection);

/* Create a channel */
AMQP::TcpChannel channel(&connection);

/* Call back when channel encounters error of any kind */
channel.onError([](const char *message) {
// report error
std::cout << "channel error: " << message << "\n";
});

/* install a generic callback that will be called when the channel is ready
for sending the first instruction.
*/
channel.onReady([]() {
// send the first instructions (like publishing messages)
std::cout << "Channel is ready\n";
});

Webserver::Route_Handler(app, "/some_route")
([&](webserver::request& req){

/* publish a message */

});

app.multithreaded.run();
}

TcpHandler.h
#ifndef TCP_HANDLER_H
#define TCP_HANDLER_H

#include <amqpcpp.h>
#include <amqpcpp/linux_tcp.h>

class TcpHandler : public AMQP::TcpHandler
{
private:

	virtual void onConnected(AMQP::TcpConnection* connection) override;

	virtual void onError(AMQP::TcpConnection* connection, const char* message) override;

	virtual void monitor(AMQP::TcpConnection* connection, int fd, int flags) override;

public:

	TcpHandler() = default;
	int m_fd = -1;
    int m_flags = 0;
	fd_set m_set;
};

#endif //!TCP_HANDLER_H

TcpHandler.cpp
#include "TcpHandler.h"

void TcpHandler::onConnected(AMQP::TcpConnection* connection)
{
    /* Logging */
    std::cout << "AMQP::TcpConnection Connected!\n\n";
}

void TcpHandler::onError(AMQP::TcpConnection* connection, const char* message)
{
    /* Logging */
    std::cout << "AMQP::TcpConnection error: " << message << "\n\n";
}

void TcpHandler::monitor(AMQP::TcpConnection* connection, int fd, int flags)
{
    /* Logging */
    std::cout << "AMQP::TcpConnection onMonitor.\n\n";
    std::cout << "The value of flags is: " << flags << "\n\n";

    if (flags == 0)
    {
        return;
    }

    if (flags & AMQP::readable)
    {
        FD_SET(fd, &m_set);
        m_fd = fd;
        m_flags = flags;
    }
}

Am I correctly implementing the monitor() function?
Thanks.


New frontend

Contains the entire frontend rework (with some backend include parameters added to make it work).

Introduced new query abstraction to make managing loading skeletons and error cases much simpler
Introduced reusable components to reduce difficulty in making common list use cases
Upgraded map functionality, with it now able to focus in onto routes/stops and select stops to focus on them
Frontend now uses the new van location tracker, route description, and route color APIs
Route screen is now easier to use with consistent stop ordering and quick access to the closest stop
Eliminated some really weird redux stuff

Dependent on #147, #146. Those need to be merged first.

Contingent upon a staging backend, but we can approve and merge once that's ready.


cilium: Print valid label prefixes into log

Signed-off-by<EMAIL_ADDRESS>

This pull request is now managed with CodeReviewHub. Refresh.


ISO-8859-1?

Why is this not a config option?
ISO-8859-1

Seems like a reasonable option. Do you feel comfortable submitting a pull request to add this option?

When I looked earlier today, I recall that this was actually in the xslt file. I'm not sure how the config option would be applied, but I might have time to look into it next week. This week is packed. I guess there could be another xslt file for utf-8, etc, or maybe there's a way to apply it after the xslt is read?
I'd have to look at the code some more.

I assume you're referring to this: https://github.com/tobym/nokogiri-pretty/blob/master/lib/indent.xsl#L2
I don't have a clear idea of what the best thing is either. I suppose you could work around it by copying the XSLT into your own project, modifying it to use UTF-8, and providing it to the human method that hasn't been released. We'll see if @tobym responds.
@tobym Alternatively we could just change the XSLT to output UTF-8 instead of ISO-8559-1 and bump the major version number, since UTF-8 is generally preferred everywhere.

The last suggestion is probably the biggest bang for your buck. I got this working locally by just changing ISO-8559-1 to UTF-8 in the current rubygems version.


update version JSON config guidance

updating our docs to be more consistent/clear, in response to #1389

Here's the PR rendering, LGTM:
https://pydata-sphinx-theme--1393.org.readthedocs.build/en/1393/user_guide/version-dropdown.html#configure-switcher-json-url
Ready for review/merge.


[QUESTION] Correct default route usage

Default Routes for SPA's -- what's the correct way to do them
Suppose you have an SPA where https://example.com/foo/bar/spam should be routed in JavaScript, not in Python.
As far as I can tell, the "correct" way to do that seems something like this:
async def default_route(scope, receive, send):
    request = Request(scope, receive=receive, send=send)

    response = templates.TemplateResponse("spa.html", {'request': request})
    await response(scope, receive, send)

app.router.default = default_route

That seems a little dirty however, since it's jumping outside both FastAPI and Starlette's documentation and just setting default to a function that then recreates the request object. It isn't very FastAPI-y.
Is there perhaps another, alternative way to establish a default route?

What I would suggest, and what I would do by default, is to put a load balancer on top of both backend (FastAPI) and frontend (probably served by Nginx). I would use Traefik as it handles HTTPS certificates with renewals easily, but you could also use Nginx, HAProxy or something similar.
Then I would make it pass everything under /api to the FastAPI app and the rest (/) to the Nginx frontend. And then the Nginx frontend would be configured to pass everything that is not a frontend file to just the same index.html so that the frontend router (React-router, Vue router, Angular) can take it from there. E.g. as it's done in https://github.com/tiangolo/node-frontend

@tiangolo's answer sounds like the way to go in production.
For testing/development I'm using a separate static resource router that sits behind all my api routers, but before my static files mount.
 @router.get('/{resource}')
    def static(resource: str):
        if "." not in resource:
            return FileResponse(path=path.join(os.getenv("STATIC_RESOURCES_PATH"), "index.html"))
        else:
            return FileResponse(path=path.join(os.getenv("STATIC_RESOURCES_PATH"), resource))

This basically serves any non-API request that is one level deep (i.e /home, /about, ...). If the path contains a . it serves the static file as resource and otherwise serves the index.html page. Any request for deeper paths (i.e. containing /s) will fall back to the original static files router.
Aware this won't work for all scenarios, but it's a good enough heuristic for my use case, but it would be nice if FastAPI would feature a generic fallback router.

Then I would make it pass everything under /api to the FastAPI app and the rest (/) to the Nginx frontend.

I'm not OP, but this is the exact step I'm working on right now. I have nginx set up to serve my static files, but I'm not sure how to route /api to my FastAPI app. What ports should my fastapi container listen to and what's the line in the nginx conf look like?
Thanks

@tiangolo suggestion to close this issue (or move it to a discussion). I'm reading this more like an architecture/implementation question, then something directly related to FastAPI code base.


IGAPP-849: Upgrade firebase

This pull request belongs to an issue on our bugtracker.
You can find it there by looking for an issue with the key which is mentioned in the title of this pull request.
It starts with the keyword IGAPP.
Tested on ios native and android emulator.
To Test:
Could not get notification on android native, maybe related to my custom rom.
Can someone test this please with an android native device
Since i had to update cocoapods & gems for new firebase version please also test on ios
Send push notification
https://cms-test.integreat-app.de/testumgebung/wp-admin/admin.php?page=fb-pn

Yep, probably related to this PR. You did oc not test this anyway though since you had another firebase version installed. But I guess this is fine. @maxammann perhaps you could test this once on a iPhone?

@klinzo 20h is not enough time to react :sweat_smile:

@maxammann this can still be tested :D


Feature Brainstorming, Documentation, etc. [ May Graduate These to Separate Issues ]

This is a running list of feature requests, we don't necessarily know if we will work on these but making notes in a consolidated place

[x] Will [interactive] Plotly charts render? I have a feeling I know what Altair was chosen, but I figured it couldn't hurt to ask ( @jeremyabramson ) A: No, Plot.ly doesn't render without jumping through lots of hoops
[x] Are footnotes supported in notebook (not MD) posts? It'd be cool if they were  ( @jeremyabramson ) A: YES They are
[ ] Any way of enabling line numbering in either code blocks for MD posts or cells in Jupyter posts? That'd certainly be very helpful for tutorial posts.  ( @jeremyabramson )
[ ] Tips and tricks blog posts about writing fastpages blog posts See this much of which is outdated and needs correction b/c of recent fixes
[ ] Microsoft word demo blog post
[ ] Chart comparing feature differences b/w Word vs. Markdown vs. Jupyter

Going to close this issue and perhaps break this out into separate issues


Added events support.

Hi! Thanks for your contribution 👍

Would you mind giving some code examples for the readme?
Thank you sir!! Much appreciated

Hi! Sure. I will try to find time later this week or at the beginning of the next week. Thank you for the plugin. It saved me a ton of time. ;-)

Also: Are you available to be added as collaborator to also create the appropriate Tag and update gh-pages?

Sure, why not.

welcome on board 👍

i was kind of excited when i saw that a resize event was added which can help solve some of the open issues but besides the fact that it's not documented and not very clear from the source code how to listen in on them, this PR also adds a bunch of unnecessary console.logs which are polluting the console


[0.8] Consider always assigning to native properties

Currently the effect of the left side of an assignment is determined by the value on the right side. If the right side contains a binding, i.e. it's wrapped in [[]] or {{}}, the left side is treated as a property assignment. If the right side contains no binding, the left side is treated as an attribute assignment.
This behavior forces the developer to alter assignments based on whether binding is happening or not and leads to an inconsistent API. For example:
Currently:

For any assignment that would result in writing to a native property, it would be more consistent to always make the assignment to the property. Non-native / custom / data- prefixed assignments should likely not be affected.
Proposed:

This leads to inconsistent behaviour with data- properties as well. Consider:

<x-x data-foo="bar"></x-x>

<x-x data-foo="{{bar}}"></x-x>

The current recommended way to assign and bind to assignments is below:
Attribute assignment:

Attribute binding:

This is a clear rule that avoids a.) a whitelist of attribute->property name mappings, b.) avoids strange exceptions (e.g. style attribute maps to style.cssText) that would have to be specially explained, c.) sidesteps intractable issues with IE's inability to have invalid text (e.g. {{...}}) in style and href attributes.
It has the unfortunate quality that the left hand changes as a result of whether the right-hand is a binding or not.  We understand this is potentially unsatisfying, but any other rule has equally unsatisfying ramifications on explainability and robustness.  This is on the Sprint 5 backlog to reconsider.

The whitelist would only have to be for properties that were renamed in the HTML spec so the properties wouldn't use keywords in JavaScript: className and htmlFor. Would there have to be others?
For class there are 3 ways to assign:
class="foo"
class$="[[foo]]"
class-name="[[foo]]"

The biggest problem I see is the difference between the first two. I'd like to be able to say, "always use class$ for consistency", but I can imagine resistance to another character.

Style is the other, and the most problematic.
Bind to style property via whitelist (map style attribute to style.cssText property).

Which leaves us with this:
Assign to style attribute:

Bind to style attribute:

So, in the end a whitelist is ultimately unsatisfying because it's a bunch of exceptions we have to explain, and it still doesn't satisfy the issue for style and href on IE, which would require us to have and even more confusing set of exceptions.  Given whitelist isn't an obvious slam dunk, the recommendation for 0.8 is going to be https://github.com/Polymer/polymer/issues/1226#issuecomment-81841974, and consider other options for 0.9.

We've decided to leave this functionality as is for now based on the discussion and browser limitations. We'll definitely continue to evaluate refinements to the binding syntax based on user feedback.


zh_trans: Fix the page errors of contribute

See More: https://v1-12.docs.kubernetes.io/zh/docs/contribute/

/cc @chenrui333 @markthink @tengqm

/lgtm
/approve

Preview build, https://5c111d6e08e6ad00094ab7ee--k8s-v1-12.netlify.com/zh/docs/contribute/

Problem

Fixed:

@Mr-Linus weight: 80 also needs to be fixed.


fixing tests for windows

Codecov Report
Attention: Patch coverage is 80.00000% with 1 line in your changes missing coverage. Please review.

Project coverage is 49.82%. Comparing base (f98538a) to head (d48bf28).
Report is 1 commits behind head on main.

Files
Patch %
Lines

cmd/kubectl.go
0.00%
1 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #19      +/-   ##
==========================================
+ Coverage   49.69%   49.82%   +0.13%
==========================================
  Files          21       21
  Lines        1147     1144       -3
==========================================
  Hits          570      570
+ Misses        532      529       -3
  Partials       45       45

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Why no new releases on pub

Hi,
why hasn't there been any new release pushed to pub when there has been so many changes?
Cheers
Thomas

Because we've been reworking the core of the editor for a long time. There's no point in releasing while so many APIs are in flux. Please use the GitHub version in your apps for now.

The big problem is that without a release management with a change log and at least Tags with versions it is difficult to know when a breaking change has happened. So you only can pin to a certain commit and every update of is a gamble if nothing will break.
Am 21. Mai 2024, 02:13 +0200 schrieb Matt Carroll @.***>:

Closed #2003 as completed.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>

The point is that we're regularly breaking lots of APIs because it isn't clear what these new APIs should be. This is the nature and purpose of unstable versions. I understand it's not ideal, but there's no obvious alternative. Rather than release dozens of versions that all break each other on Pub, we're working on GitHub where we can all recognize, as you did, that things are unstable.

I totally understand the motivation, but at least a maintained changelog with either git tags or commit hashes would be extremely helpful to know what to expect when trying to switch to a newer version.

I'm not sure what you're asking for. Pub has a change log. The change log for GitHub is the commit history.

as a pure user of your package it is difficult to follow all the changes that you frequently make, even more difficult to understand the impact that every change has on the API and the behavior of the package. So an internal changelog that makes it easier for users to understand which commit to target would be extremely helpful

I understand the frustration. The effort to keep a secondary log (in addition to the commit history) that holds every change to every API is time prohibitive. We'd spend half of our time doing that accounting.
I know that you maintain packages, so you're experienced with this. If you'd like to join our effort and help us organize that information, we'd welcome the help. However, without more people chipping in to do that, we simply don't have the time to spend on such an effort.

What I ask is not to document every change, but there should be some understanding in your team when you merge some bigger change into stable what that means to the API and behavior. I know you have limited resources but at the same time this is an extremely important package as there are not many alternatives. Every time I ask in our team if we should update super_editor I get the response, better not, it might break. Which isn't good in any way.
I was honestly shocked to see how old the version on pub is while there have been so many changes. At least some explanation about the current state and planned near future in the readme would be helpful.

Ok. I guess all I can say is that your concerns are heard and we're aware of the issue. Staying up to date with Super Editor at the moment will require careful attention, and adopters with production apps should make sure to write lots of tests to help catch regressions.

maybe exact this should be currently at the top of the readme on github

BTW, if your company would like to provide funding to the Flutter Bounty Hunters for this specific purpose, we will assign that documentation work to a member of the team.

I already started the discussion on funding internally. however er probably would like to see funding progress to new stable versions :-)

Chicken and egg - the quickest road to higher stability is a wider portfolio of funders.
When you become a funder, you get to call the shots. If you want documentation, or a specific feature, you get it with funding.
Not every team is capable of funding, and that's fine, but for teams that are capable of funding, it certainly doesn't help to wait while others fund what you need.

As said, I already started the discussion on funding

How about using pub prereleases versions? @matthew-carroll @escamoteur
https://dart.dev/tools/pub/publishing#publishing-prereleases
example: https://pub.dev/packages/freezed
It could give better visibility on pub.dev that the package is still active.
Currently the Super Editor pub home page can scare people

I just published a prerelease version to try to help with this. Unfortunately, it looks like Pub doesn't update the README file when publishing a prerelease, so we're stuck with the current messaging until we're willing to declare the new APIs stable. Unfortunate.

Readme is now updated. Maybe pub does it after processing
Am 11. Juni 2024, 07:43 +0100 schrieb Matt Carroll @.***>:

I went ahead and forked off of v0.2.6, made all the adjustments needed to support latest Dart, Flutter, and our other packages, and published v0.2.7 so that we get a README file update, and people can see we're still working on it.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: @.***>


Request POST body does not get forwarded to the redirected URI if request instance is a target of a ReadableStream.

Let's say I have the following scenario:
   BROWSER      |      PROXY SERVER                   |   THIRD PARTY SERVER
----------------------------------------------------------------------------
POST /   ----->
                       forward request to /
                       to third party ----------------->
                                                           / Redirect 307
                                                 <------   Location: /redirect-target

                       follow redirect with POST body
                       to /redirect-target ------------>   /redirect-target
                                                              - process request body
                                                              - send response
                                                 <------
                       send response back to browser
             <----------------
Response
Received

If I pipe a readableStream to an instance of request that has followAllRedirects set to true, the final third-party request handler (/redirect-target) sees a 0-length request body, and a content-length header erroneously set to 0.
However, If I assign a { body: 'something' } to the request options, the third party request handler does see the proper body length and content.
The request body is being set to zero here:
https://github.com/request/request/blob/master/request.js#L572
Here's a test snippet demonstrating it:
var app = require('express')();
var bl = require('bl');
var request = require('request');
var ReadableStream = require('stream').Readable;

app.post('/route-should-redirect', function (incomingRequest, outgoingResponse) {
  outgoingResponse.redirect(307, '/redirect-target');
  outgoingResponse.end('incorrect response');
})

app.post('/redirect-target', function (incomingRequest, outgoingResponse) {
  incomingRequest.pipe(bl(function (err, requestData) {
    if (err) throw err;
    console.log('should see "correct request":', requestData.toString());
    outgoingResponse.end('correct response');
  }));
});

var server = app.listen(3000);

var processResponse = bl(function (err, responseData) {
  console.log('should see "correct response":', responseData.toString());
  server.close();
});

function works() {
  var outgoingRequest = request({
    method: 'post',
    url: 'http://localhost:3000/route-should-redirect',
    followAllRedirects: true,

    // Pre-defined body
    body: 'correct request'
  });

  outgoingRequest.pipe(processResponse);
}

function doesNotWork() {
  var outgoingRequest = request({
    method: 'post',
    url: 'http://localhost:3000/route-should-redirect',
    followAllRedirects: true
  });

  outgoingRequest.pipe(processResponse);

  // Body as a readableStream source that we pipe to the request instance:
  var source = new ReadableStream();
  source._read = function noop() {};
  source.pipe(outgoingRequest);
  source.push('correct request');
  source.push(null);
}

I might be missing something obvious, but I'll continue to investigate.

it makes sense why this doesn't work... the readable stream is consumed by the first request handler.

I am running into the same problem with request as well. Actually https://github.com/hapijs/wreck handles this correctly by buffering the stream to be able to post it again on redirects.

I think this is actually a valid bug report.


Fix Editor Navigation debug edge connection visuals

Fixes missing Navigation debug edge connection visuals in Editor due to disabled NavigationServer.
This wasn't a problem before cause the debug was enabled by default but https://github.com/godotengine/godot/pull/63708 changed that and if a test scene is run with visible navigation debug the server gets enabled so it happened only on a fresh Editor start but was still annoying.

Thanks!


changing the name of the NFT bridge buttons

give a name to the first button on the NFT Review bridge

because that’s the name of the tab that appears when this button is pressed, this can be seen in the screenshot
but at the moment this button is called Continue

it turns out we have two Continue buttons
Spam policy

[X] I verify that this issue is NOT SPAM and understand SPAM issues will be closed and reported to GitHub, resulting in ACCOUNT TERMINATION.

There is nothing wrong with the naming of the buttons.

There is nothing wrong with the naming of the buttons.

when you click on a button called continue and find yourself on a page called review, is that correct?
ok then closed, I agree if you like it that way and will go to the mainnet with such buttons, good luck

but if you change the names of these buttons on the mainnet even though you are now saying that there is nothing wrong with them, then you will turn out to be an even bigger amateur than I think at the moment

@KorbinianK according to your logic, you can write almost any word on all buttons, for example continue, and it doesn’t matter what the name of the tab you find yourself on is when you click on this button. this is very funny. I imagine, for example, X or Facebook or whatever, where all the buttons say continue and people like you checked it and said that everything is fine and there is nothing wrong with it lol

did you even understand this post? what buttons am I talking about?

this button is not correct because it leads to the review tab

this button is correct because it leads to the bridge completion tab and is clicked to confirm that the review is correct

but if you focus only on text, then these buttons are no different for you, you understand this, they simply have no meaning other than spam clicks
but if you don’t understand this, then I won’t convince you anymore, I don’t care about your project then, for me, those who simply cannot understand such basic things are not those whom I can consider a good company


Add executables to .gitignore

Codecov Report

Merging #10 (a4640b7) into master (1a30409) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##            master       #10   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            1         1
  Lines            2         2
=========================================
  Hits             2         2

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 1a30409...a4640b7. Read the comment docs.