text:
MAINT/STY: use Black formatting

I propose to apply Black on our code base. This was discussed during the last community meetup. Using Black would remove all discussions about code style in PRs. It would be the entire responsibility of Black to format code, hence make our code base very consistent and remove the extra load due to styling (both in writing code and reviewing).
I am labelling this PR as in need of a decision. I will wait for comments before doing more work.
This PR does:

[x] Add a pre-commit hooks for Black and flake8. The goal is to remove any churn on the development side. Just commit and it fixes the code for you, no questions asked.
[x] black configuration is in pyproject.toml and flake8 ones in tox.ini.
[x] Make the max line length 88, Black's default.
[x] Run Black on the whole code base.
[ ] Add Black and flake8 in CI (where?).
[ ] Add isort (still not sure, maybe latter as this could break things with circular dependencies in some places).
[ ] Remove pycodestyle from CI and tox.ini.
[ ] Document Black use in the developer guides.

Concerns
Blame
We can mark the commit which applied Black to an exception list .git-blame-ignore-revs, see here, so that git does not see the commit and does not pollute the output of git blame.
This only works locally as GitHub does not support (yet) this functionality.
Maths
There are maths concerns with operators. For instance these examples:
https://github.com/tupui/scipy/blob/black_style/scipy/special/_basic.py#L1154
fac2 = (-1.0) ** (n + 1) * gamma(n + 1.0) * zeta(n + 1, x)

https://github.com/tupui/scipy/blob/black_style/scipy/optimize/tests/test_slsqp.py#L67
dfdx = sign * (-2 * x + 2 * y + 2)
# vs
dfdx = sign*(-2*x + 2*y + 2)

My personal view on this: our current maths is not consistent on that, thus I prefer to pay this price (having more spacing) in favour of consistency. With Black, we remove all discussions around styling once and for all. Scikit-Learn did it (cc @thomasjpfan, @ogrisel), why not us.
I would also prefer to avoid having to fork Black to adjust such things. For **, there is an open issue/PR https://github.com/psf/black/issues/538 , so it could use some discussion to make it happen. Spacing around single operator is less likely to happen, but who knows... (cc @ambv)
Skip Black
In case you really want to format something in a specific way, there is still the possibility to mark the code block, see the doc.
Merge conflicts
There are a few recipes out there to help fix merge conflicts with open PRs. We can link these in the doc.
https://github.com/scikit-learn/scikit-learn/issues/20301 https://github.com/spyder-ide/spyder/pull/15886
References
Design choice, why the sad face https://lukasz.langa.pl/1d1a43c4-9c8a-4c5f-a366-7f22ce6a49fc/
Sklearn is now using Black  https://github.com/scikit-learn/scikit-learn/pull/18948
Django proposal for Black https://github.com/django/deps/blob/main/accepted/0008-black.rst

We can mark the commit which applied Black to an exception list .git-blame-ignore-revs, see here, so that git does not see the commit and does not pollute the output of git blame.

This would be easy to tests separately, and a useful thing to have in itself. There are some really old commits (from like 10 years ago) with "whitespace cleanup" (or some variant of that) in the title. How about doing a separate PR that adds  .git-blame-ignore-revs and skips those commits? Then we can very easily see that it works.

-1 from me. Precisely because of the math formatting: e.g. (2*a + 3*b)**2. If black or some version of it can be made to preserve the binop priority, then we can reconsider IMO.

If black comes forward I would appreciate it to see the max line length remain at 79. Anyone in the world not working on a big fancy screen and/or working with terminals or traditional editors will be very thankful.

I see that a lot of the changes here are converting single-quoted strings to use double-quotes. Black now has an option to avoid that: --skip-string-normalization

If black comes forward I would appreciate it to see the max line length remain at 79. Anyone in the world not working on a big fancy screen and/or working with terminals or traditional editors will be very thankful.

The thing with black is that it tends to take more vertical space. Hence, limiting a bit more the horizontal space will make it worse. I am not opposed to going back to 79, just that small screen size is not a bullet proof argument. Consider reading about this https://black.readthedocs.io/en/stable/the_black_code_style/current_style.html#line-length and also the linked video is nice https://www.youtube.com/watch?v=wf-BqAjZb8M&t=260s

I see that a lot of the changes here are converting single-quoted strings to use double-quotes. Black now has an option to avoid that: --skip-string-normalization

Do we want that? Wouldn't it break uniformity?

I'm personally -1 on black. I think it generally makes the code less readable, especially so for our math-heavy codebase, in exchange for mild improvements to writability. As we read code much more than write it, this is not a favorable exchange, to me.

As an outsider: do you have noticeable review overhead from bikeshedding style points? My understanding is that the main selling point of black is to prevent all such arguments, because it looks the way black wants it to look. Are such disagreements common(ish) in SciPy?
I guess there's also the overhead of not having to style new code correctly in the first place... but knowing myself I probably couldn't get myself to ignore style anyway, even if I knew that the code would be fed to black :)

As an outsider: do you have noticeable review overhead from bikeshedding style points?

IMO yes we do. At least the PR I reviewed, but I am a fairly new maintainer.

In my experience, there aren't many bikeshedding arguments, per se, ("I like it this way!", "But I like it that way!"). The main review overhead is just getting the style into compliance with the existing guidelines. black's distinguishing feature is, as you say, more about resolving the former.
In general, I'd dearly love to have an autoformatting tool that only reformats code that breaks the style guidelines. That'd be truly useful and avoid the downsides of purely algorithmic reformatting.

On IPython I use darker which only apply blacks formatting to newly added and modified lines (plus sometime the neighboring lines/block).
This and giving darker a base commit (in my case 60625f241f298b5039cb2debc365db38aa7bb522) mean that all the code since then is black compliant, and there is no need for a .git-blame-ignore-revs, and rewriting whole files in a massive commit.
Because it uses a base commit instead of each commit independently , It's supposed to converge on all the code being black compliant at some point in the future (assuming each line will be close to a modification), or at least highly reduce the changes if we decide to switch to black later on.
It also has the option to apply isort and pyupgrade IIRC – which I'm not using though.
As a maintainer, I'm personally a huge fan of only formating what has been touched since commit X. It means the blame and history is accurate both locally and on GitHub. I've tried .git-blame-ignore-revs in IPython but itis  an <expletive> pain.

Personally I also have it as my formatter for my editor, which mean that it also autoformat contributions I make to other projects – whether or not they black as an autoformatter

if they use black, then formatting only my change is the same as using black.
if they don't it does not reformat their whole file for no reason.

Along the lines of what @rkern suggests, a PEP-autofixer would be great.
fixit from Instagram seems to be close: https://fixit.readthedocs.io/en/latest/
(I found that in the list of tools that gray builds upon. Other tools include isort and autoflake---for removing unused variables).

Thank you everyone for the discussion and your inputs. From the conclusion here (and mostly the linked issue), I am closing this PR for now until we have a better support of mathematical equations from Black. Only then we could reconsider.

authors: Carreau adeak ev-br perimosocordiae prisae rgommers rkern stefanv tupui


text:
Fix docklet_rstudio_addusers for new ssh integration

using old ssh_options function

using new ssh package workflow ✔
but need to fix docklet_rstudio_addusers so that if the rstudio server instance is alreday up, we bring it down first, then add users, then bring it back up

source: gharchive/issue

repo: sckott/analogsea

license_type: permissive

license_source: github-api


text:
Update README.md

Corrected a spelling error.

@charithccmc please check this one!

source: gharchive/pull-request

repo: scorelab/kute


text:
Symfony2 and VichUploaderBundle integration

Hi,
In one of my projects I needed to integrate Cropit in Symfony2.
I found there was nowhere to see how, so I solved this integration on Stackoverflow, I'd like to share for anyone who may need it.
Cheers

Thanks for sharing. Closing this non-issue and people can still find it by searching.

authors: scottcheng xmon

repo: scottcheng/cropit

license: mit

license_source: bigquery


text:
Picture element inside polymer-elment doesn't get container width

Hi there,
I'm trying to use the  element inside of a web component I'm creating, but it is choosing the smallest possible image as <picture> is not getting any dimensions from the container element.
I have tried giving :host a display:block among a myriad of other atempts at doing this with styling, including making sure the container is 100%, but nothing works.
Here is a codepen of what I'm trying to do showing the polymer-made element using the smallest image, then the <picture> element on it's own showing the correct image.
Note in the live codepen version that the
 (horizontal rule) elements created by the polymer-element are the full width and thus understand the correct width of the container.
This is the code in the codepen:

<polymer-element name="picture-container" attributes="value">
  <template>

Picture In Polymer Element

      <picture>
        <source srcset="http://www.placecage.com/c/500/500" media="(min-width: 500px)">
        <source srcset="http://www.placecage.com/c/200/200" media="(min-width: 400px)">

      </picture>

  </template>

</polymer-element>

<picture-container></picture-container>

Picture In Polymer Element

  <picture>
    <source srcset="http://www.placecage.com/c/500/500" media="(min-width: 500px)">
    <source srcset="http://www.placecage.com/c/200/200" media="(min-width: 400px)">

  </picture>

any help on this greatly appreciated.
thanks,
Scott

@scottnath Is there a way to detect when a polymer element has been added to the DOM? If so, can you run picturefill() after it's been added? I have a feeling, and may be wrong, that picturefill isn't finding the right image because it's not in the DOM yet. Also, what browser is this running on? Does it work on Chrome but not firefox or vice-vera?

@mike-engel Good idea. I tried it, but it made no change. There is a ready() method for Polymer which fires after the element is ready.
I changed my codepen to include running picturefill() and it looked like this:
...
  </template>

</polymer-element>
...

that made no changes I could determine and the in-element picture is still the wrong size.
I have only tested this on chrome - where it should work fine.

Hi @aFarkas
I tried this, but it didn't help. You can see the updated codepen here:
http://codepen.io/scottnath/pen/Wboayg
which contains your code fix. I also tried this idea on my local environment and it didn't help.
For your q...for the larger project I'm working on, I do need a web component. This very minor POC is to solve one aspect of the project I'm building - which requires me to find a web-component-related fix.
thanks,
Scott

For me it is working now in FF, before it didn't work in FF at all.

Aha! Excellent. Yes the first version: http://codepen.io/scottnath/pen/RNoBXd does not work in firefox, but the version with your code: http://codepen.io/scottnath/pen/Wboayg works excellent. It does not, however, work in Chrome. It does work in Safari though.
Can you explain what you meant by "Chrome: I think I know what's happening the media from another window than you window is used. But don't know whether this is a bug or intended."? Chrome thinks that the element-internal <picture> is from a different window?
thanks,
Scott

Here is a testcase: http://jsfiddle.net/5td6ym5L/embedded/result/

Thanks for the testcase. I'm not sure what lesson I can take away from it though.
firefox
boxes and iframe don't show up at all
safari
both boxes are 600
chrome & chrome canary
outside iframe: 1000px
inside: 101px
AFAIK, template is not an iframe and the picture element is supported by chrome.
Regardless...it seems that chrome is the culprit here - but does this mean that chrome's implementation of picture is broken somehow?
other firefox issues
looking at my codepen with @aFarkas 's codefix in it:
http://codepen.io/scottnath/pen/Wboayg
I discovered that in Firefox (33.03) if I go into about:config and change these two settings to true:
dom.image.srcset.enabled
dom.image.picture.enabled

then this mimics the incorrect behavior of chrome for the picture element. However, the @aFarkas testcase still does not work.

@scottnath
The testcase is only build for Chrome. (native supporting browsers)
But your test with firefox flags on is indeed an important one. I will write an extended testcase (or if you scream here, you can build those for us):
a) iframes
b) template
c) document fragments
d) shadowdom
But you have to know. Nothing of this is a picturefill related bug.

So...do you know what this bug is then? I'm not sure how to search for it to find a solution...

It's nothing you can change. But you can open a ticket. Here is the testcase using the template element: http://jsfiddle.net/5td6ym5L/2/embedded/result/
The other things seem to work.

The corresponding Chrome bug was fixed.

@aFarkas great job! Seeing the fix in my Chrome Canary already. Thanks for submitting that!
-Scott

I found a bit more convenient way.
Since we can extend native elements - I've created custom elements based on native picture and img, now I'm using them as:

Similarly for picture.
Under the hood it just calls picturefill() function on itself when element is created.
Sources of both

authors: aFarkas mike-engel nazar-pc scottnath

repo: scottjehl/picturefill


text:
UDP

It'd be nice to support RTP/UDP in addition to RTP/TCP (interleaved channels) for at least a couple reasons:

counterintuitively, I think this would be more reliable with some cameras (at least those affected by #17)
possibly lower latency, depending on network conditions and implementation. At least in theory this comes at the expense of more dropped packets.

Work for receiving data over UDP:

separate "sessions" from "connections". They're separate types already, but they're always created and destroyed together, and I think some fields might be in the wrong place.
manage the UDP socket(s). I think the simplest model is for each UDP session to own its UDP socket(s) (maybe just one, or maybe up to two per stream: one for RTP, one for RTCP). If a session is dropped without TEARDOWN, it gets handed off to some background task that retries the teardown periodically until success or timeout, then closes the socket(s). Note this is more IO library-specific logic. (It's possible to share UDP sockets between sessions, but I'm not seeing any real advantage right now, and it adds complexity.)
in combination with #7: we'd need to define a trait for UDP, and we might want to take an "opener" rather than an existing TCP connection, so that we can retry opening the connection if it closes when we still want to send a TEARDOWN or other request.
consider how to handle out-of-order packets. On a LAN, I think we might get away with just dropping them, and that might be the only situation I care about for now. But I think other software like ffmpeg implements reorder buffers: if we're waiting for packet n and n+1 shows up, queue n+1 until at least x ms pass or the queue size exceeds y bytes.
send RTCP RR packets (reception reports) to help the server pace packets appropriately.

When sending data (a client using the ONVIF audio back channel, or a server, neither of which is implemented yet anyway), we'd also need to implement pacing.

@jlpoolen if you're very brave, you can try out the wip-udp branch with the new --transport=udp option. It's only received about one minute of testing, and it has several known problems mentioned in the commit message, but in the one minute it did appear to work well with Reolink cameras.
I won't prepare a Moonfire NVR version with this until it's more solid.

Brave as in a dog to a steak?  Can you provide me an example of a URL for the UDP connection?  I've not ventured in Reolink's UDP capability and would need an example to construct ones for my cameras.
(Thinking a scripted population of the configuration stuff (I'd write a Perl script) may be in order -- that is a time-consuming process.)

The URL doesn't change. With the additional --transport=udp parameter, Retina will (after setting up the sockets and such) tell the Reolink server to use UDP via the Transport: header of the SETUP method.

Do you want me to leave tails of log files? I've tried three times, 10-20 seconds, then 2 almost 1 minute until a failure.  Here my most recent:
jlpoole@taurus /usr/local/src/retina_branch/retina $ cargo run --example client mp4 --transport udp --url rtsp://192.168.1.54:554/h264Preview_01_main --username moon --password fire123  --duration 600 /tmp/retina_wip.mp4
    ...

2487874216 (mod-2^32: 2487874216), npt 70.144: 512-byte audio frame
2863836048 (mod-2^32: 2863836048), npt 71.176: 17430-byte video frame
2863841988 (mod-2^32: 2863841988), npt 71.242: 17374-byte video frame
E20210827 19:44:40.099 main client] Fatal: Lost 1 RTP packets mid-stream
jlpoole@taurus /usr/local/src/retina_branch/retina $

For posterity, here's what I did to switch to this branch after I clone into a new area, e.g. /usr/local/src/retina_branch,
jlpoole@taurus /usr/local/src/retina_branch $ git clone https://github.com/scottlamb/retina.git
jlpoole@taurus /usr/local/src/retina_branch $ cd retina/
	jlpoole@taurus /usr/local/src/retina_branch/retina $ git checkout 1f3abb7d0c018087d2140b7eb3905c98799a1782
Note: switching to '1f3abb7d0c018087d2140b7eb3905c98799a1782'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at 1f3abb7 WIP: UDP support (#30)
jlpoole@taurus /usr/local/src/retina_branch/retina $ cargo run --example client mp4 --transport udp --url rtsp://192.168.1.54:554/h264Preview_01_main --username moon --password fire123  --duration 10 /tmp/retina_wip.mp4
   Compiling retina v0.2.0 (/usr/local/src/retina_branch/retina)
    Finished dev [unoptimized + debuginfo] target(s) in 6.56s
     Running `target/debug/examples/client mp4 --transport udp --url 'rtsp://192.168.1.54:554/h264Preview_01_main' --username moon --password fire123 --duration 10 /tmp/retina_wip.mp4`
3150027245 (mod-2^32: 3150027245), npt 0.000: 512-byte audio frame
3150028269 (mod-2^32: 3150028269), npt 0.064: 512-byte audio frame
3150029293 (mod-2^32: 3150029293), npt 0.128: 512-byte audio frame
3150030317 (mod-2^32: 3150030317), npt 0.192: 512-byte audio frame
3150031341 (mod-2^32: 3150031341), npt 0.256: 512-byte audio frame
3150032365 (mod-2^32: 3150032365), npt 0.320: 512-byte audio frame
3150033389 (mod-2^32: 3150033389), npt 0.384: 512-byte audio frame
3150034413 (mod-2^32: 3150034413), npt 0.448: 512-byte audio frame
3064035027 (mod-2^32: 3064035027), npt 0.000: 702428-byte video frame

I'm a Subversion fan, so git is a foreign language for me.  I had to fumble around until I came upon the "git checkout ..." command.

Here's my first try (precedes my posting above):
3150036461 (mod-2^32: 3150036461), npt 0.576: 512-byte audio frame
3150037485 (mod-2^32: 3150037485), npt 0.640: 512-byte audio frame
3064062027 (mod-2^32: 3064062027), npt 0.300: 15766-byte video frame
E20210827 19:39:47.923 main client] Fatal: Lost 17 RTP packets mid-stream
jlpoole@taurus /usr/local/src/retina_branch/retina $

Was trying for a 10 minute run, just after a minute same kind of error.  Note: when the Fatal error occurs, the output file is not usable by vlc.
2041404768 (mod-2^32: 2041404768), npt 64.704: 512-byte audio frame
2041405792 (mod-2^32: 2041405792), npt 64.768: 512-byte audio frame
1914628791 (mod-2^32: 1914628791), npt 67.599: 11122-byte video frame
E20210827 20:01:10.129 main client] Fatal: Lost 1 RTP packets mid-stream
jlpoole@taurus /usr/local/src/retina_branch/retina $ ls -laht /tmp |head
total 160M
drwxrwxrwt 12 root    root     12K Aug 27 20:01 .
-rw-r--r--  1 jlpoole jlpoole  49M Aug 27 20:01 retina_wip.mp4
-rw-r--r--  1 jlpoole jlpoole 309K Aug 27 19:45 vlc_log.html
-rw-r--r--  1 jlpoole jlpoole 9.7K Aug 27 19:22 Fri_Aug_27_19:21:59_2021_ffmpeg_STDERR_54.log
-rw-r--r--  1 jlpoole jlpoole 5.1M Aug 27 19:22 Fri_Aug_27_19:21:59_2021_ffmpeg_54.mp4
-rw-r--r--  1 jlpoole jlpoole 6.1K Aug 27 19:22 Fri_Aug_27_19:21:59_2021_live_54.log
-rw-r--r--  1 jlpoole jlpoole 5.4M Aug 27 19:22 Fri_Aug_27_19:21:59_2021_live_54.mp4
-rw-r--r--  1 jlpoole jlpoole 3.1M Aug 27 19:22 Fri_Aug_27_19:21:59_2021_retina_54.mp4
-rw-r--r--  1 jlpoole jlpoole  365 Aug 27 19:22 Fri_Aug_27_19:21:59_2021_retina_STDERR_54.log
jlpoole@taurus /usr/local/src/retina_branch/retina $ vlc /tmp/retina_wip.mp4
VLC media player 3.0.14 Vetinari (revision )
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7eff50c59780] moov atom not found
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7eff04c03200] moov atom not found
QObject::~QObject: Timers cannot be stopped from another thread
jlpoole@taurus /usr/local/src/retina_branch/retina $

You can let me know either through this thread, or by other means, if you would like further testing or a testing that might generate unique logs with different error messages  What I could do is accumulate log files and then hash the errors to identify different ones.

Don't go to any trouble to gather logs and things; I haven't really done my due diligence on my own yet. But I should have mentioned: it probably should be used with --allow-loss as well. UDP is inherently somewhat lossy, although it's interesting that you're reliably seeing loss in the first minute.

I believe this is working well now.

I have not updated since my initial pull.  But I did do further testing and had several last until the specified duration of 10 minutes was reached.  Do you want me to activate some tests?  I've been working on a Perl script which automates testing and logging.

Sure; I am curious how it will do in your high-loss environment. It's merged to the main branch now, so you'll want to git checkout main back. It's also available in Moonfire NVR via --rtsp-transport=udp.

authors: jlpoolen scottlamb

repo: scottlamb/retina


text:
HtmlT (ScottyM) () has crazy memory usage.

Hi, I'm trying to generate HTML templates that contain ScottyM. I tried to create a minimal example of the issue I'm having. I assume it's due to scotty using "Control.Monad.State.Lazy"?
{-# LANGUAGE OverloadedStrings, ExtendedDefaultRules #-}
import Web.Scotty
import Web.Scotty.Internal.Types
import Lucid.Base
import Lucid.Html5
import Control.Monad
import qualified Data.ByteString.Lazy as BL
import qualified Control.Monad.State.Lazy as SL
import Data.Default.Class (def)
import Data.Functor.Identity

-- compile and run: main > /dev/null
-- while watching memory usage the scotty version uses GBs of memory
-- the normal Identity version does not

main = do
  BL.putStr $ SL.evalState (runS $ renderBST myscottyhtml) def --uses GBs of memory
  BL.putStr $ runIdentity $ renderBST myhtml --doesn't use GBs of memory

myscottyhtml :: HtmlT (ScottyM) ()
myscottyhtml = replicateM_ 2 $ div_ $ do
                 replicateM_ 1000 $ div_ $ do
                   replicateM_ 10000 $ div_ "test"

myhtml :: HtmlT Identity ()
myhtml = replicateM_ 2 $ div_ $ do
           replicateM_ 1000 $ div_ $ do
             replicateM_ 10000 $ div_ "test"

I added a couple more tests including one using Control.Monad.Stict.State which also uses lots of memory. Looks like it's caused by Control.Monad.State in general.
main = do
  BL.putStr $ SL.evalState (runS $ renderBST (myhtml :: HtmlT (ScottyM) ())) def --bad
  BL.putStr $ runIdentity $ renderBST (myhtml :: HtmlT Identity ()) --good
  BL.putStr $ runIdentity $ evalHtmlT $ renderBST (myhtml :: HtmlT (HtmlT Identity) ()) --good
  BL.putStr $ S.evalState (renderBST (myhtml :: HtmlT (S.State ()) ())) () --bad

myhtml :: Monad m => HtmlT m ()
myhtml = replicateM_ 2 $ div_ $ do
           replicateM_ 1000 $ div_ $ do
             replicateM_ 10000 $ div_ "test"

i'm not a big fan of lazy StateT, so this is definitely worth looking into.

Case
Allocated
GCs
Live
Check
Max
MaxOS

ScottyM Lazy
20,152,346,856
19,535
300,904,624
OK
1,030,278,384
3,958,374,400

ScottyM Strict
13,109,875,112
12,287
0
OK
0
619,708,416

Identity
8,472,857,320
7,825
300,927,016
OK
300,927,016
1,516,240,896

resolved in #245

authors: NerdGGuy chessai

repo: scotty-web/scotty


text:
Error (0x01) - Line: xx Col xx - File to import not found or unreadable

Hi,
I've installed the latest Scout app (WIN_Scout-App_2.6.8) and am having problems getting it to work.  I never had a problem with the old Scout app (0.7.1) that used Adobe Air and Java, but as I'm starting out on a new computer build I don't want to install Java this time around bearing in mind all the security concerns it causes.
So I've added my current project that I'd backed up before rebuilding my computer.
Within my project I've the sub-folders:-
/library/scss
and
/library/css
within scss I have, as example, two scss files:-
style.scss
and
_base.scss
When I try to amend content in _base.scss I get an error in Scout:-
Error (0x01) - Line:32 Col: 1
File to import not found or unreadable: base
Parent style sheet:
style.scss
31: // styles in base.scss
32: @import "base";

I've searched for similar errors, tried (for the sake of argument) changing line 32 to @import "_base" or "_base.scss", and then tried deleting the .sass-cache folder hoping that it might have been causing the problem due to it caching (possibly) the old folder structure to which this project was within before I had to wipe my computer.
I cannot seem to figure this out, am I missing something obvious please?

I am unable to reproduce this issue. I assume that you have a syntax error in your code somewhere and that the error it's giving is unrelated. This error is generated by Node-Sass, Scout-App just surfaces it and makes it easier to parse.

If this isn't an accurate reproduction of your issue, please upload a version that allows me to reproduce your bug..

I have this error. I found that I had to use the full path starting from C:/ ... / ... / all the way to the file.
Is this an issue or does the scout app support relative paths?
The old scout app accepted paths starting from the Input folder but this ones doesn't seem too.
Also on windows installation. Downloaded it today.

@lad33 @leewaring

Scout-App 2 fully supports relative and direct links.
We have some Testing folders in the repo that we use to make sure it works correctly before doing a release.
Again, this is likely a syntax error in your code that is causing this. If you can give me a project that causes this issue so I can reproduce it locally, I can verify if this is an error in your code, or if there is a legitimate bug in Scout-App that needs fixed for the next release.

My project is set up like this:
Website (output folder)

_SCSS (Input folder)
-- Global
--- base.scss
-- css
--- _functions
---- colours.scss
---- fonts.scss
---- mixins.scss
---- functions-all.scss
--- _modules
--- etc...
css (outputted CSS files)
Global (outputted CSS files)

My base.scss file looks like this
/* ==== Import all functions */
@import 'css/_functions/functions-all';
/* ==== Import code modules */
@import 'css/_modules/core/normalise';
@import 'css/_modules/core/fonts';
@import 'css/_modules/core/core-element-styles';
@import 'css/_modules/core/helper-classes';
@import 'css/_modules/core/typesetting';
@import 'css/_modules/core/links';
@import 'css/_modules/core/layout';
@import 'css/_modules/core/sitefinity-layout-overwrites';
@import 'css/_modules/core/mobile-menu-button';
@import 'css/_modules/core/common-element-styles';
@import 'css/_modules/core/cookie-bar';
@import 'css/_modules/core/header-footer';
@import 'css/_modules/core/buttons';
@import 'css/_modules/core/print';
Does this help?

@leewaring
I made a video to help explain what's going on:

https://youtu.be/FD6G2Yveigs

Thanks for the video! Cleared up a few things which have been bugging me.
So it seems on the version of Scout that I was running the path to imported files could be either relative, direct or relative to the input folder (kind of like setting a HTML base tag as a reference point).
In all of my scss files I could use @import 'css/_functions/functions-all'; and it would import the functions-all scss file no matter how far down the document tree the file was saved as it would start at the Input folder and work from there.
I liked this feature as I didn't have to worry about changing the path or if I moved the scss file to another folder up or down the document tree I wouldn't have to change the import path to the functions file.
I agree my project is set up rather strange however in the CMS I am using (Sitefinity) the _SCSS folder is located in the root of the template folder. The template folder requires a Global folder (with capital G) of which any css files placed within will be loaded onto all pages. I then created a css folder in the root to house the page specific css files. It's rather a large site with over 100 style sheets so far so I'm keen on keeping order and making files easy to find. That said I have only been using scss for 6-8 months so still lots to learn!

@leewaring
Cool, glad that cleared things up. I won't be changing the way Scout-App 2 looks for files. The current process is handled completely by Node-Sass. It would take a lot of extra work to circumvent their built in system which would lead to a much buggier app.
Scout-App does a lot to make things easier for people, but changing this would just encourage bad habits and make it harder to transition a Sass code base from Scout-App to a different system like Webpack/Grunt/Gulp. Your Sass files and structure should follow the Sass standards and be agnostic towards what system you are using to process them.

@lad33
Let me know if that video helps you too. If so I can close this issue.

@TheJaredWilcurt
I may have stumbled upon a solution to this problem. It looks as though using // at the start of the path will make it look for the file from the input folder path. So I would need to update my import paths to //css/_functions/functions-all
I would wonder if this would also work on Webpack/Grunt/Gulp too?

That's a shame. I can't change to Scout app 2 if it doesn't offer the same functionality of its predecessor. Does Scout work because it creates a cache file just below the input folder?
I'll keep an eye on this project though and try it out for my other sites.
Thanks for all your help and advice. Really appreciate it.

Scout-App Classic was built on Java, Adobe Air, and Ruby (Ruby Sass).
Scout-App 2 is built on NW.js, Node, and Node-Sass (SassC).

The two share no code in common. Scout-App 2 was a complete rewrite to allow us to take advantage of modern (2016) Sass, since Scout-App Classic was stuck on a 2012 version of Sass that could not be updated. It also allowed us many other advantages, like better cross-platform support and easier developing. Though we've kept the design very similar, and have the same beliefs that drove Scout-App Classic, it simply cannot function identically due to the drastically different underlying technologies.
There is a basic comparison chart on Scout-App.io between the two.
It should be noted that Compass is Ruby only, so many projects that relied on it, also would need to be modified to use Scout-App 2. Fortunately (for Scout-App 2), the industry as a whole has been moving away from Compass over the last few years, so complaints about this have been very few.
I hope Scout-App 2 can accommodate your future workflows.

@leewaring
This isn't exactly what you were describing, but is related, so I thought I would let you know about it, since this feature isn't documented anywhere and may be of use to you:

https://github.com/scout-app/scout-app/issues/275#issuecomment-257368181

Hi, apologies for the delay in getting back in touch on this one...
I've had a read through of thread and watched the first half of the video however leewaring's setup looks a little more complex than mine so I'm thinking the cause for him may be different, or at least, my root problem is a variation on the theme.
Anyway...
Looking at my structure again, maybe I'm missing the obvious.
I have a project folder, within it the subfolder "library" as follows:-
project
= library
== css (Output folder)
== scss (Input folder)
Within the "scss" folder I have several files as example:-
scss
= _base.scss
= _grid.scss
= _mixins.scss
= style.scss
Incidentally, this structure is from a Wordpress theme called bones, I've been using as a project base.
Within style.scss, the following code snippet:-
// styles in base.scss
@import "base";
Hopefully, I've attached the style.scss file for easier reference:-
style.scss.txt
So, reading through the thread, and looking at the video I'm not sure my issue is the same as discussed, with both the _base.scss file and the style.scss file both sitting in the Input folder (scss) I'm thinking the absolute/relative path clarification isn't the issue?
From my limited understanding but what I've managed to pick up so far with Sass and using Scout previously, I'm thinking the idea of the structure and code is that all the _xxxx.scss have been set up as separation of concerns to keep code segmented and easier to maintain within the theme. The style.scss is the file that then collates these files and in turn Scout then "translates" that file into the equivalent (and compressed in my instance) style.css which is then created/updated into the output folder (css) from which Wordpress can apply the styling etc.  The underscore tells Scout to ignore the other files because I don't want them in the output folder, only the "compiled" css stytesheet from style.scss.
I think that's about right?
So, I'm stuck trying to understand the error when the style.scss is trying to import a file within the same folder as itself.
Does that help any further at all?
Thanks for taking the time to assist us with this.

@lad33
https://youtu.be/HF7-ryb9HPw

Hi,
Thanks again for picking this up and for taking the time to put the video together too. Much appreciated.
Sounds good advice so I'll schedule some time to do exactly that and hopefully it won't take me long before I track down the culprit.
I'll comment back when I've done so for feedback.
Cheers.

Windows8.1(64), (WIN_Scout-App_2.6.8)
I have similar problem.
When i add a new project and run it first time - i hear success sound and i see my code in generated styles.css [my first screenshot].
But then, when i make any changes and click ctrl+S in my text-editor - i head error sound and see an error(in dev tools) [my first screenshot].
I think the problem is - window-style path to my folder.
Scout-App opened it as: F:/Projects/test/
Win explorer gives me: F:\Projects\test

I just found: if i write my code using any other text editor (Notepad++, Brackets) - everything works perfect, i can save and see generated code in styles.css.
Sublime Text - still locking my styles.scss file for Scout-app.

@VladG0r
Though I'm still trying more thorough tests to attempt to reproduce this, my assumption is that it is related to atomic saves. This is enabled by default in Sublime in older versions, as of 3072 though it is disabled by default.
Scout-App uses chokidar to monitor changes on the file system (so when you save, it triggers the input to be processed again.)

https://www.npmjs.com/package/chokidar#errors

According to their documentation, you could  add atomic: true, to line 180 of Scout-App/scout-files/_scripts/app.js in your copy of the application. (Either above or after the ignored line).
You could try that and see if Sublime works with that setting enabled. If so, I can look into maybe adding a setting for it in the Scout-App preferences. Or you can try disabling the setting in Sublime Text, as detailed here:

http://stackoverflow.com/questions/20634684/what-is-sublime-text-doing-when-i-save-a-file

Or you could try updating to a never version of Scout-App that has it disabled by default.

You were right.
Sublime Text 3 (beta build 3126) has "atomic_save": false, by default.
Changed it to :true and magic happend. You saved my day, Thanks!

@lad33
Is the issue resolved for you?

@TheJaredWilcurt
Hi, I've done the same as VladG0r and changed the automic_save setting in Sublime Text 3 (beta build 3126) and I'm now not receiving the error.
Instead I'm receiving another error "Undefined variable: "{insert_variable_name}" in _base.scss for a variable declared in a separate mixin file _mixins.scss.
So I'm thinking the solution above has likely solved the problem stated therefore in this post but will need to test fully once I've resolved this new issue.
Thanks.

@lad33 if you have difficulty resolving the issue, link to a repo with the code in it, or zip and upload it and I'll take a look.

@TheJaredWilcurt Thanks.  I figured it out, just needed to set aside some time properly and catch my brain up as it'd been a while since I last had chance to look at the problem.
I'd simply forgotten that all my other partials were commented out in my style.scss file including the _mixins.scss where the variables are defined! Doh!
Once I'd uncommented the file everything worked as it should.

Awesome. Closing this issue.

Having this issue when using vscode. 🤕

Yep, same here. Im an error from time to time, telling me scout cant find the file. Stopping and restarting Scout usually solves the problem then but its getting pretty annoying after a while

I still get this issue with vscode.
It's not all the files - which is odd. But it happens in my main .scss where I import others. What is weird though is when I delete everything in the file, it still errors.
Even stranger (maybe?) I edit this file, ctrl+s - error sound + error message, then click a different scss file, ctrl+s, successful sound, and the css has been built.

I still get this issue with vscode. It's not all the files - which is odd. But it happens in my main .scss where I import others. What is weird though is when I delete everything in the file, it still errors.
Even stranger (maybe?) I edit this file, ctrl+s - error sound + error message, then click a different scss file, ctrl+s, successful sound, and the css has been built.

Me too, i still get this issue with vscode.

authors: TheJaredWilcurt VladG0r adrianovarlotta andreasjhagen datacubed jim1138 lad33 leewaring smuuf

repo: scout-app/scout-app

license: MIT


text:
Optional usage MongoDB as storage.

Hi, guys!
Thanks for that awesome project. It's hard to implement or you can say the way to achive it (have time for making PR) saving to MongoDB as storage?

Saving to MongoDB should be possible, the most powerful and simple IMO approach is to implement it as https://github.com/jelmer/dulwich backend. This is similar to how Portia support Mysql backend.

Hi @Skyross, sorry for the late reply.
As @dangra says you can add a new backend by extending the dulwich library. By taking this approach you can add version control to your project. The other approach is to just store the current project state in the database.
To create a storage backend that just stores the current state you need to  create 2 classes like these.
from slyd.projects import ProjectsManager
from slyd.projecttemplates import templates
from slyd.errors import BadRequest

MONGOCLIENT = None

class MongoProjectsManager(ProjectsManager):
    @classmethod
    def setup(cls, client, **kwargs):
        if MONGOCLIENT is None:
            MONGOCLIENT = client
    def __init__(self, auth_info):
        super(MongoProjectsManager, self).__init__(auth_info)
        self.project_commands['deploy'] = self.deploy
    def all_projects(self):
        """
        List all available projects.

        :returns: list
        """
    def list_projects(self):
        """
        Override this to limit projects that an individual user sees based on
        custom permissions.

        :returns: list
        """
        if 'authorized_projects' in self.auth_info:
            return self.auth_info['authorized_projects']
        else:
            return self.all_projects()
    def create_project(self, name):
        """
        Create the base files for a new project.

        └── PROJECT_NAME
            ├── project.json
            ├── scrapy.cfg
            ├── setup.py
            └── spiders
                ├── __init__.py
                └── settings.py

        Templates for these files can be found in slyd.projecttemplates

        WARNING: Make sure to call self.validate_project_name(name)

        :returns: None
        """
    def rename_project(self, from_name, to_name):
        """
        Rename a project

        WARNING: Make sure to call self.validate_project_name(to_name)

        :returns: None
        """
    def remove_project(self, id):
        """
        Remove a project based on its id

        :returns: None
        """
    def deploy(self):
        """
        Package and deploy project to remote location for scheduling.
        For example to deploy to Scrapyd you would need to package the project
        into an egg and then upload it through the API.
        """

class MongoProjectSpec(ProjectSpec):
    @classmethod
    def setup(cls, client, **kwargs):
        if MONGOCLIENT is None:
            MONGOCLIENT = client
    def rename_spider(self, from_name, to_name):
        """
        Rename a spider.

        WARNING: Rename its' templates directory too.
        :raises: BadRequest
        :returns: None
        """
    def remove_spider(self, name):
        """
        Delete a spider and all of its' templates
        """
    def remove_template(self, spider_name, name):
        """
        Delete a template from a spider.

        WARNING: Delete the template name from the spider's `template_names`
                 list

        :raises: BadRequest
        :returns: None
        """
    def resource(self, *resources):
        """
        Load a dict representation of the resource. The resources list provides
        a path to the requested file.

        >>> path = os.path.join(spec.project_name, *resources)
        PROJECT_ID/SPIDER_ID/TEMPLATE_ID

        :returns: dict
        """
    def savejson(self, obj, resources):
        """
        Save the dict representation of the resource as a json string in the
        storage backend.

        Use `json.dumps(obj, sort_keys=True, indent=4)` for easier readability
        of the json data.

        :returns: None
        """

Then you need to create a local_settings.py file in /slyd/slyd with the following contents:
from pymongo import MongoClient

mongo_client = MongoClient()

SPEC_FACTORY = {
    'PROJECT_SPEC': 'module_path.MongoProjectSpec',
    'PROJECT_MANAGER': 'module_path.MongoProjectsManager',
    'PARAMS': {
        'client': mongo_client
    },
    'CAPABILITIES': {
        'version_control': False,
        'create_projects': True,
        'delete_projects': True,
        'rename_projects': True,
        'deploy_projects': True,
        'rename_spiders': True,
        'rename_templates': True
    },
    'CUSTOM': {
        'branding': {
            'component': 'portia-branding,
            'data': {}
        }
    }
}

If you would like to create a version controlled backend you will need to modify the dulwich library and add a new backend to that. For an example of how to do that check out the MySQL backend.
In this case your local_settings.py file will look like this:
MONGO_DB_URL = 'mongodb://user:pass@host:port/db'

SPEC_FACTORY = {
    'PROJECT_SPEC': 'slyd.gitstorage.projectspec.ProjectSpec',
    'PROJECT_MANAGER': 'slyd.gitstorage.projects.ProjectsManager',
    'PARAMS': {
        'storage_backend': 'dulwich.mysqlrepo.MysqlRepo',
        'location': MONGO_DB_URL,
    },
    'CAPABILITIES': {
        'version_control': False,
        'create_projects': True,
        'delete_projects': True,
        'rename_projects': True,
        'deploy_projects': True,
        'rename_spiders': True,
        'rename_templates': True
    },
    'CUSTOM': {
        'branding': {
            'component': 'portia-branding,
            'data': {}
        }
    }
}

Hopefully this info can get you on the right path. Please tell us how it turns out.

HI!
Thank you all for reply. Will check ASAP and tell you how it worked.

authors: Skyross dangra ruairif

repo: scrapinghub/portia


text:
Proxy-authorization is not being sended on 'CONNECT' method

I using AnyProxy and i can't use proxy on https endpoint with splash, the authorization headers are not sended on CONNECT method, so i received 407 error on my proxy.
The proxy works normaly on HTTP endpoints.

How are you configuring your proxy? Are you using proxy profiles?

@Gallaecio Yes! I'm running splash using docker:
docker run -v ~/proxy-profiles:/etc/splash/proxy-profiles --network=host -it -p 8050:8050 scrapinghub/splash

default.ini:
[proxy]
host=127.0.0.1
port=8001
username=test
password=
type=HTTP

Logs from AnyProxy

HTTPS (https://httpbin.org/get)

[AnyProxy Log][2019-11-29 11:43:04]: received https CONNECT request httpbin.org
{
  'proxy-connection': 'keep-alive',
  host: 'httpbin.org',
  'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/602.1 (KHTML, like Gecko) splash Version/9.0 Safari/602.1'
}

HTTP (http://httpbin.org/get):

[AnyProxy Log][2019-11-29 11:49:21]: received request to: GET httpbin.org/get
{
  'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/602.1 (KHTML, like Gecko) splash Version/9.0 Safari/602.1',
  Accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  'Proxy-Authorization': 'Basic dGVzdDo=',
  Connection: 'Keep-Alive',
  'Accept-Encoding': 'gzip, deflate',
  'Accept-Language': 'en,*',
  Host: 'httpbin.org'
}

@Gallaecio Can you take a look at this? There's something i can do to make this work?

I’m busy with other projects at the moment, and I’m not familiar enough with using Splash with proxies to suggest any workaround. If you think this may be a configuration issue on your side, I would suggest trying asking in Stackoverflow or checking existing questions. Otherwise, we’ll have to wait until this is confirmed to be a bug (e.g. someone else reproducing the issue).

It's seems that the Splash or Qt have a different flow from others apps like cURL.
Because the CONNECT method don't send Proxy-Authorization but all others methods like GET/POST/etc send this header, when all others apps do the opposite, sends Proxy-Authorization on CONNECT and not on other methods.
So i was able to solve this, dealing with this flow, now my application is working fine with proxies.

authors: Gallaecio Urahara

repo: scrapinghub/splash


text:
block popular 3rd party resources

can we also block popular 3rd party resources like tracking?
I found a source but I don't think we can use it in scrapy-playwright.

From what I'm seeing in that article, you could block said resources using PLAYWRIGHT_ABORT_REQUEST.

Check the documentation of the Request object. It includes a url method.

authors: Gallaecio baharmf93 elacuesta

repo: scrapy-plugins/scrapy-playwright


text:
🛑 At the Wall is down

In d8ff569, At the Wall (https://at-the-wall.atanas.info) was down:

HTTP code: 0
Response time: 0 ms

Resolved: At the Wall is back up in c3c0acc.

repo: scriptex/uptime


text:
Pi aggregation circuit

Description
[PR description]
Issue Link
[link issue here]
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Contents

[item]

Rationale
[design decisions and extended information]
How Has This Been Tested?
[explanation]

How to fill a PR description
Please give a concise description of your PR.
The target readers could be future developers, reviewers, and auditors. By reading your description, they should easily understand the changes proposed in this pull request.
MUST: Reference the issue to resolve
Single responsability
Is RECOMMENDED to create single responsibility commits, but not mandatory.
Anyway, you MUST enumerate the changes in a unitary way, e.g.
This PR contains:
- Cleanup of xxxx, yyyy
- Changed xxxx to yyyy in order to bla bla
- Added xxxx function to ...
- Refactored ....

Design choices
RECOMMENDED to:

What types of design choices did you face?
What decisions you have made?
Any valuable information that could help reviewers to think critically

is the chunk here (ChunkPublicData, each corresponds to a chunk with max_txn transactions) same as chunk for keccak hash inputs (1788=1088 bits for each chunk)? I think each chunk has 300 Keccak rows but a hash may have 300*num_chunk rows?

is the chunk here (ChunkPublicData, each corresponds to a chunk with max_txn transactions) same as chunk for keccak hash inputs (17 * 8 * 8=1088 bits for each chunk)? I think each chunk has 300 Keccak rows but a hash may have 300 * num_chunk rows?

Thanks for spotting this. It is fixed with f4082a2e973835dbd09717e062b24ba2f5af56ce

Thanks for spotting this. It is fixed with f4082a2, with your idea of using is_final cell

Great! I'll take a careful look. For the hardcoded 300, I think it may not be seriously hard to change to parameter-dependent. In general this 300 is replaced by NUM_ROWS_PER_ROUND * 25 (24+1 which is never changed in Keccak). Also, the hash output is always at row[last]. The only problem might be with the hash input, which currently we put at row[6]. When the num of lookup bits change, the word split and transform modules in keccak codebase may incur this 6 to be changed in a little complicated way.

repo: scroll-tech/zkevm-circuits


text:
Create new album option is hidden at the end of folder list in move/copy window

Is your feature request related to a problem? Please describe.
When being in the pop-up window to move/copy images to an album, the "create new album" is not the first entry. Consequently, I have to scroll to the end of the list of my hundred of folders before I can see this entry. Firs, I thought that there was not even the possibility to create a new album from this view. This might be misleading for new users.
Moreover, the thumbnail displayed next to the "create new album" text is showing some random picture from some of my albums. I wonder why? :)
In the screenshot, I scrolled all the way down:

Describe the solution you'd like
Show the create new album option always as the first entry instead of last entry in the list.
Additional context
I have my folders sorted by date descending.

Wrong picture shown in this dialog is a known bug for a very long time, sadly I still can't find the cause, the implementation of this list adapter is the same as in the other lists, but those lists do not experience this bug.
'New Album' item should be on the top, I believe more and more users prefer creating albums on the server.

Ah ok, yeah no problem, the wrong picture doesn't bother me :)
I am uncertain if I got your second part correctly. Do you mean that create new album is listed on top for you, and it must be an issue with my specific setup?

I mean placing it to the top of the list is a good idea. User will see it when they start with just a few albums, but obviously some will not if they created a lot of albums on server before the first sync.

repo: scubajeff/lespas


text:
Implementation of fireducks pandas

What kind of feature would you like to request?
Additional function parameters / changed functionality / changed defaults?
Please describe your wishes
I would like to ask whether it would be possible for next iteration of scanpy to implement compatibility for fireducks pandas https://fireducks-dev.github.io?
Thanks

For example, the data frame type is pandas.DataFrame in pandas, but fireducks.pandas.DataFrame in FireDucks, which are not exactly the same. Therefore, an explicit test for a pandas DataFrame, such as isinstance(df, pandas.DataFrame), will be false. True for import fireducks.pandas as pd; isinstance(df, pd.DataFrame).

I'm not sure whether I like that. This might break quite a lot of downstream code.

authors: KarlKaise Zethson

repo: scverse/anndata


text:
请问，“全部加载完成”能否一直显示在底部

求教，当没有更多数据的时候，能否让“全部加载完成”这种提示语一直显示在底部，并且可以随着内容滑动（类似支付宝滑动到最后那种）？多谢！

那种 footer 需要在 adapter中添加，你可取起使用  BaseRecyclerViewAdapterHelper 这个库

setEnableFooterFollowWhenLoadFinished

authors: Freedomhxb scwang90 yanboefrei


text:
Difference between scylla-cdc-java and debezium-connector-cassandra

Hi.
What is difference between this project and debezium-connector-cassandra.

First, a similarity: both Scylla CDC Source Connector and debezium-connector-cassandra are source connectors (ingesting data from database to Kafka) and both are based on Debezium framework.
The difference is in implementation of CDC in Cassandra and Scylla.
Cassandra's CDC is saving the CDC log into files on each Cassandra node. Therefore, debezium-connector-cassandra must be installed on each Cassandra node and it reads local files on each node.
In contrast, Scylla's CDC saves the CDC log into a normal CQL table. Querying the CDC log can be done by normal CQL queries - no need to read local files on each node. Therefore, Scylla CDC Source Connector is run separately (on Kafka Connect cluster) and is scaled separately to Scylla.
Cassandra and Scylla CDC implementations are not compatible, meaning you can't use debezium-connector-cassandra for Scylla and Scylla CDC Source Connector for Cassandra.

@avelanarius
Thanks for the detailed explanation.
So, if we use scyllaDB, i think we need to use the scylla-cdc-java connector.
I would like to ask you last two questions.
First. Currently, can the scylla-cdc-java connector be used in production?
Second. If our scyllaDB cluster size is 3, what is the appropriate tasks.max size? is that 3 right ?

First. Currently, can the scylla-cdc-java connector be used in production?

Currently we provide the connector in the "preview" phase. We are now starting a Confluent "Gold verification" process after which we would consider the connector production-ready (unfortunately, I can't provide a specific date for that yet).

Second. If our scyllaDB cluster size is 3, what is the appropriate tasks.max size? is that 3 right ?

Number of tasks is more related to the number of Kafka (Connect) nodes.
For example, if you had a Kafka cluster with 3 nodes (and each of them running Kafka Connect) and set tasks.max to 3, each Kafka Connect node would ingest CDC log into Kafka (each reading 1/3 of it). In our testing, we did not find that increasing tasks.max to a number greater than the number of Kafka Connect nodes improved the performance further (but it also did not hurt the performance).
The good news is that you could change the tasks.max value with small interruption: change it in configuration, restart the connector and the connector will resume from the last position.
Regarding the number of Kafka nodes you would need to use for connector to Scylla cluster of certain size, there is no single easy answer (it depends on whether the Scylla load is more read or write-heavy, size of rows, chosen Kafka serialization format, etc.)

authors: avelanarius pkgonan

repo: scylladb/scylla-cdc-java


text:
Update scylla to 0.11.1

Updates scylla to use version 0.11.1, and updates other outdated dependencies.
Additionally adds resolver = "2" to the workspace config.

I'll close this as https://github.com/scylladb/scylla-cdc-rust/pull/125 was merged and updated the driver version to a higher version (0.13.1).

authors: piodul tqwewe

repo: scylladb/scylla-cdc-rust


text:
port per shard to 1.6, master and 2017.1

This PR port the per shard option added to 1.7 in #184 to dashboards 1.6, 2017.1 and Master
It also fixes a few minor issues the per share presentation of 1,7
fix #192

Looks ok to me.

authors: tgrabiec tzach

repo: scylladb/scylla-grafana-monitoring


text:
Add MATLAB stage

Additional env variables with default values:

matlab_release: 'R2021a',
matlab_repo: 'https://github.com/analogdevicesinc/TransceiverToolbox.git',
matlab_branch: 'master',
matlab_commands: [],

MATLAB commands are written using typical MATLAB syntax.
harness.set_matlab_commands(["ad=adi.utils.libad9361",                          "ad.download_libad9361()",                          "addpath(genpath('test'))",                          "pyenv('Version','/usr/bin/python3')",                          "runHWTests(getenv('board'))"])
Multibranch pipelines do not use MATLAB repo and branch because the checkout process is done using checkout scm while non-multibranch pipelines manually clone the specified branch of the specified repo. checkout scm fails for non-multibranch pipelines.
isMultiBranchPipeline() checks if the job is a multibranch pipeline using checkout scm.
createMFile() saves the matlab_commands to an .m file which is run during the MATLAB session.

I think this is gtg

repo: sdgtt/jenkins-shared-library


text:
Ending poetry init with Ctrl + D unexpectedly terminates whole init wizard

[x] I am on the latest Poetry version.

[x] I have searched the issues of this repo and believe that this is not a duplicate.

[x] If an exception occurs when executing a command, I executed it again in debug mode (-vvv option).

OS version and name: macOS 10.13.5

Poetry version: 0.11.2

Link of a Gist with the contents of your pyproject.toml file: this error comes up while trying to generate a pyproject.toml file with Poetry

Issue
Here's the reproduction:
$ poetry -vvv init
<initial setup snipped>
Search for package: boto3

Found 47 packages matching boto3

Enter package # to add, or the complete package name if it is not listed:
 [ 0] Flask-Boto3
 [ 1] boto3
<more options snipped>
 > 1
stty: 'standard input': unable to perform all requested operations

Enter the version constraint to require (or leave blank to use the latest version):
Using version ^1.7 for boto3

Search for a package: <Ctrl + D here>
[RuntimeError]
Aborted

Exception trace:
 /usr/local/lib/python3.6/site-packages/poetry/_vendor/cleo/application.py in run() at line 94
   status_code = self.do_run(input_, output_)
 /usr/local/lib/python3.6/site-packages/poetry/console/application.py in do_run() at line 88
   return super(Application, self).do_run(i, o)
 /usr/local/lib/python3.6/site-packages/poetry/_vendor/cleo/application.py in do_run() at line 197
   status_code = command.run(input_, output_)
 /usr/local/lib/python3.6/site-packages/poetry/console/commands/command.py in run() at line 72
   return super(BaseCommand, self).run(i, o)
 /usr/local/lib/python3.6/site-packages/poetry/_vendor/cleo/commands/base_command.py in run() at line 146
   status_code = self.execute(input_, output_)
 /usr/local/lib/python3.6/site-packages/poetry/_vendor/cleo/commands/command.py in execute() at line 107
   return self.handle()
 /usr/local/lib/python3.6/site-packages/poetry/console/commands/init.py in handle() at line 114
   self._determine_requirements(self.option("dependency"))
 /usr/local/lib/python3.6/site-packages/poetry/console/commands/init.py in _determine_requirements() at line 205
   package = self.ask("\nSearch for a package:")
 /usr/local/lib/python3.6/site-packages/poetry/_vendor/cleo/commands/command.py in ask() at line 213
   return self.output.ask(question, default)
 /usr/local/lib/python3.6/site-packages/poetry/_vendor/cleo/styles/cleo_style.py in ask() at line 157
   return self.ask_question(question)
 /usr/local/lib/python3.6/site-packages/poetry/_vendor/cleo/styles/cleo_style.py in ask_question() at line 189
   answer = QuestionHelper().ask(self._input, self, question)
 /usr/local/lib/python3.6/site-packages/poetry/_vendor/cleo/helpers/question_helper.py in ask() at line 49
   return self._do_ask(output, question)
 /usr/local/lib/python3.6/site-packages/poetry/_vendor/cleo/helpers/question_helper.py in _do_ask() at line 91
   ret = self._read_from_input(input_stream)
 /usr/local/lib/python3.6/site-packages/poetry/_vendor/cleo/helpers/question_helper.py in _read_from_input() at line 350
   raise RuntimeError('Aborted')

init [--name NAME] [--description DESCRIPTION] [--author AUTHOR] [--dependency DEPENDENCY] [--dev-dependency DEV-DEPENDENCY] [-l|--license LICENSE]

Basically, it's a combination of two minor issues.
First, it's not clear how to terminate the repeated prompts of Search for a package:. Perhaps a hint like "Leave blank and hit Enter to move to next step" would make it more obvious.
Since I didn't know at first what to do to move to the next stage, I tried Ctrl + D, which is commonly used to mean "end of input". I guess that was the wrong thing here, since it terminated the whole initialization wizard and I had to start over.
I think a small tweak or two to poetry init could help others avoid a similar situation in the future.

Hey Nick! Great to see you here on the issue tracker in poetry :)
#1291 fixes this issue so I'll close this for now. If you think that other improvments could be made, feel free to re-open this or create a new one.

authors: nchammas stephsamson

repo: sdispater/poetry


text:
Bug:  Can not install java 11.0.9-librca at this time...

Bug report
~ >>> sdk install java 11.0.9-librca
Downloading: java 11.0.9-librca
In progress...
########################################################################################################################## 100,0%########################################################################################################################## 100,0%
Download has failed, aborting!
Can not install java 11.0.9-librca at this time...
System info
Manjaro
SDKMAN 5.9.1+575

Hi @a-trusov!
Does the problem still persist?
Tested the installation on both MacOSX and Ubuntu and both seem to work fine.

Hi @a-trusov, I too use Manjaro and just managed to install it without a hitch. Please feel free to chat with us on slack if your issue persists.

authors: a-trusov helpermethod marc0der

repo: sdkman/sdkman-cli


text:
add remove child and reset grid

I've added a new small button on each created child to remove
and added reset button to clear the grid

I think that's the best solution for removing divs :)

Is this the same of https://github.com/sdras/cssgridgenerator/pull/19

Thanks @lipis for the good review too!

Of all of the solutions that people have PR'ed, I think this is the best one. Clean and easy to understand. Not overengineered. Nice work!

thanks :)

authors: Sawalhah equinusocio lipis sdras

repo: sdras/cssgridgenerator


text:
add Ghostty theme links to README

Ghostty is a new terminal that had its public release a few days ago.
I've created the light and dark versions of the Night Owl theme for Ghostty and added them to a single repository.
Thank you for this fantastic theme 🙏

Wow, thanks!

repo: sdras/night-owl-vscode-theme


text:
[T2A4][T04-A?]Kenny Ng

Ready for review

This PR should be against a repo in the org nus-cs2103-AY1617S2 not against the repo in se-edu org :-)
Closing...

authors: damithc kennyngdsc


text:
Bug/193 scheduling doesnt use active hours closes #193

Getting the saved value for the active hours from the settings page and pass it as a prop to the Calendar component.
Extended the addTaskToSchedule() in TaskScheduler.js function to include a new parameter for the active hours. Making relevant changes to other files as necessary where the function is getting called
Changed the EDF algorithm from the TaskScheduler.js file to make sure the tasks are scheduled between the active hours.

closes #193

[ ] The pull request is complete according to the following criteria:

[x] Acceptance criteria have been met
[ ] The documentation is kept up-to-date
[ ] Comprehensive tests (if applicable) have been generated and all pass.
[x] The pull request describes the changes that have been made, and enough information is present in the description for any developer to understand what has changed
[x] Commits have been squashed (or will be on merge).
[x] The branch name is descriptive and follows the pull request title format : {issue/bug...}/(Issue Number) - Name of issue. E.g bug/30-Fix-Project
[x] The pull request title is of the following format : {issue/bug...}/(Issue Number) - Name of issue. E.g bug/30-Fix-Project
[x] The description uses github syntax to link to the issue. E,g Resolves se701g2/Doto#{Number}
[x] At least two reviewers assigned. One of which must be the assigner of the issue.
[x] If there are merge conflicts, run git rebase as opposed to git merge with master.

Nice work @DeshmukhChinmay @TCHE614. Your frontend tests seem to be failing, should just need to be updated to match your changes.

@TCHE614 @jordansimsmith I have updated the tests to include the changes we made.

authors: DeshmukhChinmay TCHE614 jordansimsmith


text:
Add rules for public clouds in builtin resource definitions

With https://github.com/seal-io/walrus/issues/2149 now we should be able to create multi-cloud resources out of the box.

Environment

Walrus version: main 61fe2d23f46237867cf199c44a3275ee71b7805d
UI version: dev-b878771

Test Result:
Add aws and alibaba clouds.
mysql: pass
postgresql: pass
redis: pass

authors: Finenyaco gitlawr

repo: seal-io/walrus


text:
feat: sealer support uninstall app by image name

Describe what this PR does / why we need it
Does this pull request fix one issue?

Describe how you did it
uninstall process workflow:

mount app image locally and scp the related uninstall scripts to master0.
exec scripts/uninstall.sh under $rootfs dir on master0 machine.
delete app image files in $rootfs dir on each cluster node. Including build context and container image.

Describe how to verify it
kubefile:
FROM kubernetes:v1.20.4
COPY uninstall.sh scripts
COPY dashboard.yaml manifests
CMD kubectl apply -f manifests/dashboard.yaml

cat uninstall.sh
kubectl delete -f manifests/dashboard.yaml

build app image , run and uninstall app image.
sealer build -t dashboard:v1 --base=false
sealer run dashboard:v1
sealer uninstall dashboard:v1

Special notes for reviews

What if run one image multi time?
sealer run -e name=testdb mysql:8.0
sealer run -e name=productdb mysql:8.0

Will uninstall witch one?
sealer uninstall mysql:8.0

What if run one image multi time?
sealer run -e name=testdb mysql:8.0
sealer run -e name=productdb mysql:8.0

Will uninstall which one?
sealer uninstall mysql:8.0

Sorry, I'm a little unclear here，
i understand the uninstall script determines the specific removal logic，we use it to do uninstall process and clean the related rootfs files.

I think we need to consider a better uninstall mechanism. If there is no good solution, we can not do this first.

repo: sealerio/sealer


text:
Support set node name as node ip using env UseIPasNodeName.

Describe what this PR does / why we need it
Does this pull request fix one issue?

Describe how you did it
Describe how to verify it
Special notes for reviews

Codecov Report
Patch and project coverage have no change.

Comparison is base (8627fea) 18.90% compared to head (be69249) 18.90%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@           Coverage Diff           @@
##             main    #2135   +/-   ##
=======================================
  Coverage   18.90%   18.90%
=======================================
  Files          95       95
  Lines        8909     8909
=======================================
  Hits         1684     1684
  Misses       6995     6995
  Partials      230      230

Flag
Coverage Δ

unit-tests
18.90% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

authors: VinceCui codecov-commenter


text:
Update build configuration

The build configuration of this project is outdated and may no longer work.
This pull request will be merged automatically if there are no conflicts.

:tada: This PR is included in version 4.1.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

repo: sealsystems/node-request-service


text:
Dealing with JSON arrays which have multiple types

Hello!
I am trying to create a struct definition that will be serialized as a payload (although I'm certain to run into this with de-serializing responses too). The structure of the JSON that the endpoint will accept is very fluid (lots of optional fields and conditionally required values).
One issue I have run into is modeling arrays which contain multiple types. In my Rust world I would reach for enums (because I happen to know all the possible types) or a trait object, but I would be shocked and deeply impressed if either of those automagically implemented serialize/de-serialize for JSON.
How is modeling JSON arrays with multiple types usually handled in reqwest? I can move this issue to the serde repo if it would be more appropriate there, but I figured I must be the 20,000th person to run in to this while working with reqwest.

What you want is most likely possible with serde. I think these pages would be a good start:

Structs and enums in JSON
Enum representations

Thank you!!! God bless serde.

authors: bcpeinhardt seanmonstar

repo: seanmonstar/reqwest


text:
Add http2_adaptive_window and htt2_max_frame_size from hyper

Fixes #1193.

Should the adaptive window actually be turned off by default?

It's the default from hyper so I just turned it off. Should I turn it on by default?

It seems like something you'd usually want, but I don't know the reason hyper has for not defaulting to it.

authors: blyxxyz svenstaro


text:
Error when running tests

I followed the README exactly, but I have this error without much detail
$ bundle exec rake spec:javascript --trace RAILS_ENV=test
** Invoke spec:javascript (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute spec:javascript
Running `"/Users/jonathan/.phantomjs/2.1.1/darwin/bin/phantomjs" "" "path/to/my_app/vendor/bundle/ruby/2.1.0/gems/jasmine-rails-0.12.5/lib/jasmine_rails/../assets/javascripts/jasmine-runner.js" "file://path/to/my_app/tmp/jasmine/runner.html?spec="`
Running: file://path/to/my_app/tmp/jasmine/runner.html?spec=
rake aborted!
Error executing command: "/Users/jonathan/.phantomjs/2.1.1/darwin/bin/phantomjs" "" "path/to/my_app/vendor/bundle/ruby/2.1.0/gems/jasmine-rails-0.12.5/lib/jasmine_rails/../assets/javascripts/jasmine-runner.js" "file://path/to/my_app/tmp/jasmine/runner.html?spec="
path/to/my_app/vendor/bundle/ruby/2.1.0/gems/jasmine-rails-0.12.5/lib/jasmine_rails/runner.rb:73:in `run_cmd'
path/to/my_app/vendor/bundle/ruby/2.1.0/gems/jasmine-rails-0.12.5/lib/jasmine_rails/runner.rb:23:in `block in run'
path/to/my_app/vendor/bundle/ruby/2.1.0/gems/jasmine-rails-0.12.5/lib/jasmine_rails/runner.rb:50:in `override_rails_config'
path/to/my_app/vendor/bundle/ruby/2.1.0/gems/jasmine-rails-0.12.5/lib/jasmine_rails/runner.rb:9:in `run'
path/to/my_app/vendor/bundle/ruby/2.1.0/gems/jasmine-rails-0.12.5/lib/tasks/jasmine-rails_tasks.rake:9:in `block (2 levels) in <top (required)>'
path/to/my_app/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:240:in `call'
path/to/my_app/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:240:in `block in execute'
path/to/my_app/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:235:in `each'
path/to/my_app/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:235:in `execute'
path/to/my_app/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:179:in `block in invoke_with_call_chain'
/Users/jonathan/.rbenv/versions/2.1.2/lib/ruby/2.1.0/monitor.rb:211:in `mon_synchronize'
path/to/my_app/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:172:in `invoke_with_call_chain'
path/to/my_app/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/task.rb:165:in `invoke'
path/to/my_app/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:150:in `invoke_task'
path/to/my_app/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:106:in `block (2 levels) in top_level'
path/to/my_app/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:106:in `each'
path/to/my_app/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:106:in `block in top_level'
path/to/my_app/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:115:in `run_with_threads'
path/to/my_app/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:100:in `top_level'
path/to/my_app/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:78:in `block in run'
path/to/my_app/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:176:in `standard_exception_handling'
path/to/my_app/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/lib/rake/application.rb:75:in `run'
path/to/my_app/vendor/bundle/ruby/2.1.0/gems/rake-10.4.2/bin/rake:33:in `<top (required)>'
path/to/my_app/vendor/bundle/ruby/2.1.0/bin/rake:23:in `load'
path/to/my_app/vendor/bundle/ruby/2.1.0/bin/rake:23:in `<top (required)>'
/Users/jonathan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.12.3/lib/bundler/cli/exec.rb:63:in `load'
/Users/jonathan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.12.3/lib/bundler/cli/exec.rb:63:in `kernel_load'
/Users/jonathan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.12.3/lib/bundler/cli/exec.rb:24:in `run'
/Users/jonathan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.12.3/lib/bundler/cli.rb:304:in `exec'
/Users/jonathan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.12.3/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/Users/jonathan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.12.3/lib/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
/Users/jonathan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.12.3/lib/bundler/vendor/thor/lib/thor.rb:359:in `dispatch'
/Users/jonathan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.12.3/lib/bundler/vendor/thor/lib/thor/base.rb:440:in `start'
/Users/jonathan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.12.3/lib/bundler/cli.rb:11:in `start'
/Users/jonathan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.12.3/exe/bundle:27:in `block in <top (required)>'
/Users/jonathan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.12.3/lib/bundler/friendly_errors.rb:98:in `with_friendly_errors'
/Users/jonathan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/bundler-1.12.3/exe/bundle:19:in `<top (required)>'
/Users/jonathan/.rbenv/versions/2.1.2/bin/bundle:23:in `load'
/Users/jonathan/.rbenv/versions/2.1.2/bin/bundle:23:in `<main>'
Tasks: TOP => spec:javascript

I also have spec/javascripts/test_spec.js
describe("stuff", function() {
  it("runs", function() {
    expect(1+1).toBe(2);
  });
});

The jasmine.yml is the generated one

Did you resolve this issue?

Yeah I did, it just sorta worked after I reinstalled the gems. I wish i had a better analysis.
It would be nice to get better error messages though. (My guess is those messages are bleeding through from phantomjs)

authors: JonathanFrias searls

repo: searls/jasmine-rails


text:
docker 运行 seata-1.7.0版本 连接nacos被拒

[ ] I have searched the issues of this repository and believe that this is not a duplicate.

Ⅰ. Issue Description
我的seata本地配置文件如下：

我的nacos配置文件如下：

nacos版本是2.2.1。docker指令：

log报错：

切换为1.6.1版本，运行docker指令，正常。
Ⅱ. Describe what happened
If there is an exception, please attach the exception trace:
Just paste your stack trace here!

Ⅲ. Describe what you expected to happen
Ⅳ. How to reproduce it (as minimally and precisely as possible)

xxx
xxx
xxx

Minimal yet complete reproducer code (or URL to code):
Ⅴ. Anything else we need to know?
Ⅵ. Environment:

JDK version(e.g. java -version):
Seata client/server version:
Database version:
OS(e.g. uname -a):
Others:

@ArexdOr What is the nacos-server version?

2.2.1。我记得我在描述中写过版本
---原始邮件---
发件人: @.>
发送时间: 2023年7月6日(周四) 中午11:01
收件人: @.>;
抄送: @.@.>;
主题: Re: [seata/seata] docker 运行 seata-1.7.0版本 连接nacos被拒 (Issue #5703)
@ArexdOr What is the nacos-server version?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you were mentioned.Message ID: @.***>

It is confirmed that NacosRegistryServiceImpl only adds a commit in 1.7.0 compared to 1.6.1 and does not involve service registration.

It is confirmed that NacosRegistryServiceImpl only adds a commit in 1.7.0 compared to 1.6.1 and does not involve service registration.

好吧，我明天再测试一次

@ArexdOr Any feedback?

@ArexdOr Any feedback?
我今天试了一次1.7的版本，还是出现连接问题。日志如下图：

ui界面：

docker暴露容器ip：

@ArexdOr Any feedback?
我今天试了一次1.7的版本，还是出现连接问题。日志如下图：

 ui界面：  docker暴露容器ip：

我什么都没有改动，只是在docker运行1.6.1版本seata。两个版本使用的配置文件都是一样的，1.6.1版本一切正常。ui界面也没有报错。

2.2.1 image not found.

It's been reproduced. Thank you very much.

@ArexdOr The new image has been updated with the original docker tag to solve this issue, you can pull down the new image to try to see if the issue is solved, note that the original image needs to be deleted or force update.

新的image使用原来的docker tag已经更新解决这个问题，你可以拉取下新的镜像尝试下看是否解决了问题，注意需要删除原镜像或force update.

Due to the long time no reply temporarily closed, if necessary, please re-reopen.

authors: ArexdOr slievrly

repo: seata/seata


text:
feature:support update join sql

[ ] I have registered the PR changes.

Ⅰ. Describe what this PR did
support update join sql for(mysql、oracle、pg)
Ⅱ. Does this pull request fix one issue?

fixes #4118
fixes #4518
Ⅲ. Why don't you add test cases (unit test/integration test)?
Ⅳ. Describe how to verify it
Ⅴ. Special notes for reviews

支持语句：update employees inner join merit on employees.performance = merit.performance set salary = salary + salary * count
实现思路
拆分为多张表，分别构造这些表的前后置镜像查询语句，主要考虑查哪些表、查哪些字段、查哪些行
1）查哪些表
解析join表子句，递归解析获得表（UpdateRecognizer#getTableName）
2）查哪些字段
解析update join中set子句获得update join的所有需要更新的字段(UpdateRecognizer#getUpdateColumns)，这些字段可能涉及到多张表，需要根据特定的表进行过滤（UpdateExecutor#getItemUpdateColumns）
3）查哪些行
以join表子句作为union 表（eg: employees inner join merit on employees.performance = merit.performance），分别查询不同表所需的数据

支持语句：update employees inner join merit on employees.performance = merit.performance set salary = salary + salary * count 实现思路 拆分为多张表，分别构造这些表的前后置镜像查询语句，主要考虑查哪些表、查哪些字段、如何查 1）查哪些表 解析join表子句，递归解析获得表（SQLUpdateRecognizer#getTableName） 2）查哪些字段 解析update join中set子句获得update join的所有需要更新的字段(UpdateRecognizer#getUpdateColumns)，这些字段可能涉及到多张表，需要根据特定的表进行过滤（UpdateExecutor#getItemUpdateColumns） 3）如何查 以join表子句作为union 表（eg: employees inner join merit on employees.performance = merit.performance），分别查询不同表所需的数据
！！！暂不支持Oracle和PG数据库update join语法

getItemUpdateColumns

1、字段转义


text:
Make application Submit button be green

We use white buttons for simple buttons and blue buttons for higher-visual-priority buttons. The Submit button is the highest priority of all, so it should get an even higher priority color, such as green.

Hi, I can help, please assign me.

I am willing to work on this issue. If possible pls assign.

authors: danger-ahead neel-a-mehta soham4abc

repo: seattle-uat/civiform


text:
l2l.transforms.RandomRotation(degrees)

A vision transform that uniformly samples from iterable degrees the degress of rotation that will be applied to the image.
Example:
rotate = l2l.transforms.RandomRotation([0.0, 90.0, 180.0, 270.0])

Question: should it be in l2l.transforms or l2l.data.transforms or l2l.data.vision.transforms ?

I am curious why if this is any different than torchvision.transforms.RandomRotation? Looks like we could use that.


text:
How can i get id of new saved entity?

Is possible to use like Entity framework?
using (var context = new MyContext())
{
context.MyEntities.Add(myNewObject);
context.SaveChanges();
int id = myNewObject.Id; // it's here
}

If I'm not wrong this is already there

authors: hishamco lthoa

repo: sebastienros/yessql


text:
🛑 SantiagoEchange is down

In d1c86e5, SantiagoEchange (https://www.santiagoexchange.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: SantiagoEchange is back up in e60d280.


text:
sf.utils.logging.set_logging_level是否能筛选输出日志等级

Issue Type
Bug
Source
binary
Secretflow Version
secretflow 1.3.0b0
OS Platform and Distribution
Docker alpine:3.14 on Ubuntu 22.04.4
Python version
Python 3.8.15
Bazel version
No response
GCC/Compiler version
No response
What happend and What you expected to happen.
怎么调整secretflow在stdout/stderr输出的日志内容的等级？INFO太多有点影响问题定位。
找到sf.utils.logging.set_logging_level这个API似乎设置了不起作用。下面的代码输出为

2024-03-26 09:47:46,295	INFO worker.py:1431 -- Connecting to existing Ray cluster at address: 192.168.96.2:6379...
2024-03-26 09:47:46,301	INFO worker.py:1621 -- Connected to Ray cluster.

仍然包含INFO。

Reproduction code to reproduce the issue.
import secretflow as sf

sf.utils.logging.set_logging_level('WARN')

sf.shutdown()
sf.init(parties=['alice', 'bob'])

目前 sf.utils.logging.set_logging_level 只对 sf 的日志起作用，对 ray 本身没有作用，你可以单独设置 ray 的日志：
import logging
import secretflow as sf

sf.shutdown()
# 直接这样设置即可，如果要用 set_logging_level 也必须在 sf.init 之后，否则会被覆盖
sf.init(parties=['alice', 'bob'], logging_level='warn')

logger = logging.getLogger("ray")
logger.setLevel(logging.WARNING)

参考 ray 的文档：https://docs.ray.io/en/latest/ray-observability/user-guides/configure-logging.html#using-rays-logger

目前 sf.utils.logging.set_logging_level 只对 sf 的日志起作用，对 ray 本身没有作用，你可以单独设置 ray 的日志：
import logging
import secretflow as sf

sf.shutdown()
# 直接这样设置即可，如果要用 set_logging_level 也必须在 sf.init 之后，否则会被覆盖
sf.init(parties=['alice', 'bob'], logging_level='warn')

logger = logging.getLogger("ray")
logger.setLevel(logging.WARNING)

参考 ray 的文档：https://docs.ray.io/en/latest/ray-observability/user-guides/configure-logging.html#using-rays-logger

这样设置后Python这边的日志应该是抑制了，但是在用SPU做psi的时候好像仍会收到C++代码里的日志输出，如何解决？
2024-03-27 06:42:14,733	INFO worker.py:1431 -- Connecting to existing Ray cluster at address: 192.168.96.3:6379...
2024-03-27 06:42:14,738	INFO worker.py:1621 -- Connected to Ray cluster.
(SPURuntime(device_id=None, party=bob) pid=22160) [2024-03-27 06:42:20.249] [info] [bucket_psi.cc:278] bucket size set to 1048576
(SPURuntime(device_id=None, party=bob) pid=22160) [2024-03-27 06:42:20.249] [info] [bucket_psi.cc:130] Begin sanity check for input file: /root/record.csv, precheck_switch:true
(SPURuntime(device_id=None, party=bob) pid=22160) [2024-03-27 06:42:20.528] [info] [csv_checker.cc:135] Executing duplicated scripts: LC_ALL=C sort --parallel=64 --buffer-size=1G --stable selected-keys.60474f42-32ff-46b6-a779-39f3a604a499 | LC_ALL=C uniq -d > duplicate-keys.60474f42-32ff-46b6-a779-39f3a604a499
(SPURuntime(device_id=None, party=bob) pid=22160) [2024-03-27 06:42:20.783] [info] [bucket_psi.cc:143] End sanity check for input file: /root/record.csv, size=1000000
(SPURuntime(device_id=None, party=bob) pid=22160) [2024-03-27 06:42:20.783] [info] [bucket_psi.cc:300] Run psi protocol=2, self_items_count=1000000
......

@z0gSh1u hey，目前没有更好的方法，因为python无法限制c++里面的logging level。

authors: Chrisdehe ian-huu z0gSh1u

repo: secretflow/secretflow


text:
模型融合的模型提取，无法提取非标签携带方，那非标签携带方可以使用携带方的融合模型吗？

根据官网提供的模型融合例子，模型融合无法提取非标签携带方的模型，那么让alice侧导出模型，提供给bob侧，bob再load模型做预测可行吗？

问题已解决
直接用不行，因为有device的信息
但把模型的参数都导出，用bob的再导入，应该是可以的
test_complete_model_serde 里头的代码，这么稍微改下就好了，核心是把alice导出的模型参数文件，用bob再次导入
 with open('model.json', 'r') as file:         loaded_obj = env.bob(lambda x: from_dict(json.loads(file.read())))(             ''         )

好的，感谢您的反馈

authors: aokaokd didadida321 kaixin-haha


text:
Added UNSAFE flag to deprecated component lifecycle methods

After react 16.9 update, a warning is being thrown if unsafe component lifecycle methods are used without UNSAFE_ flag. Added the flag to suppress the warning.

Please merge this PR 😃

@seeden can this be merged?

repo: seeden/react-google-publisher-tag


text:
Apptimize integration requires older version of segment analytics

Hi,
When I try to add Apptimize integration in my code I face an issue of segment version being used in my code, please see the error below.
[!] Unable to satisfy the following requirements:

- `Analytics (= 3.3.0)` required by `Podfile`
- `Analytics (~> 3.0.7)` required by `Segment-Apptimize (0.1.0)`

So should I wait for the new release of segment-apptimize integration or should I downgrade my segment version from 3.3.0 to 3.0.7 ?
Thanks.

Fixed in 0.2.0

Sorry, actually I realized we gave the ownership of the pod to Apptimize (https://github.com/Apptimize/analytics-ios-integration-apptimize).
You'll have to contact their team to make this fix https://github.com/segment-integrations/analytics-ios-integration-apptimize/commit/3ead6398461ed0fe1efc51f8fd380361c814d8f6 in their github repo.


text:
session not being recorded when integrating through segment

I don't get any error and the __insp appears to be set, but the sessions don't show up in the dashbord. I double checked all settings and the page event is coming in correctly, and all other integrations are working.
Any hint ? Hopefully this is not a bug and I am missing something.

Can you email friends@segment.com? Just so it gets in front of our support team who can take a deeper look.

thanks

After speaking with support it turned out I integrated everything correctly but despite the fact that the documentation does not mention it, you need to fire a track event to start a session (?)
I don't understand the reasoning behind this choice considering that this is not the behavior of Inspectlet when installed through it's own snippet.

Why a session is not worth recording if the user only scrolls the page it's not clear. Passive sessions are the one I need to fix, I need to see them more than anything.
I would be ok if there was an API to start the session manually, I am always down to have more control. But it smells that the API is indeed track() which will be sent to all my other integrations. What exactly am I tracking?

You can track a session started event - analytics.track("session started").

@f2prateek do you feel like this is how is supposed to work?

I am not too familiar with inspectlet and this integration, but if they need an explicit signal to start recording a session (which sounds like they do), then a track event is the best way to do it. We don't support every partner API directly (i.e. in this case, we don't have a start/stop session method) to keep our API simple.

(Either way, this is probably something we note in the docs)

@f2prateek when I use their own snippet it doesn't need any manual event triggering. I completely understand you guys won't clutter the analytics.js API with third party methods, I am just trying to understand why it doesn't work :D

How are you loading their script? We just add a script tag to the page - https://github.com/segment-integrations/analytics.js-integration-inspectlet/blob/master/lib/index.js#L18. Maybe the initialization code is different from what you had in a native integration? https://github.com/segment-integrations/analytics.js-integration-inspectlet/blob/master/lib/index.js#L29-L30
If we're doing the same as you are, then I'm surprised it doesn't just work out of the box.

I'm surprised it doesn't just work out of the box.

Now we're talking.
Maybe they hook up to 'load' event which is already fired when segment attaches the script? I can provide a test environment URL to debug this further.

Looking at their snippet, they do the same we do https://www.inspectlet.com/docs, i.e. simply drop a script tag on the page.
<!-- Begin Inspectlet Embed Code -->
< script type = "text/javascript"
id = "inspectletjs" >
    window.__insp = window.__insp || [];
__insp.push(['wid', 12345678]);
(function() {
    function ldinsp() {
        if (typeof window.__inspld != "undefined") return;
        window.__inspld = 1;
        var insp = document.createElement('script');
        insp.type = 'text/javascript';
        insp.async = true;
        insp.id = "inspsync";
        insp.src = ('https:' == document.location.protocol ? 'https' : 'http') + '://cdn.inspectlet.com/inspectlet.js';
        var x = document.getElementsByTagName('script')[0];
        x.parentNode.insertBefore(insp, x);
    };
    setTimeout(ldinsp, 500);
    document.readyState != "complete" ? (window.attachEvent ? window.attachEvent('onload', ldinsp) : window.addEventListener('load', ldinsp, false)) : ldinsp();
})(); < /script>
<!-- End Inspectlet Embed Code -->

@kilianc Might be worth looping in any inspect let people into this thread, I've asked for contacts from our partners team, but feel free to ping any of your contacts as well.

That's what I thought, it should auto start right? I don't understand why .track() has a role in all this.

I activated the integration in live mode and I'll leave it there for a day. I'll be back with some data.

Hmm that's odd, I just installed Inspectlet via Segment on a boilerplate page and it starts tracking without needing to fire a track event. @kilianc what's the live URL for the site? I'd love to take a look!

https://lukibear.com I really hope it was just a momentary issue or my mistake somewhere :)

I just visited the home page and it recorded the visit successfully at https://www.inspectlet.com/dashboard/captures/2147080968 , are you logged into a different account than info@lukibear.com by any chance? There are another ~50 recordings in here from today :)

@inspectlet I know, I had it installed manually until few minutes agò and just switched since everyone was trying to help me out :)
I'll close this and reopen in case it doesn't work again!

authors: f2prateek inspectlet kilianc


text:
Add placholder on FilePicker component

The issue #531 said about need of the placeholder filepicker need to be dynamic, because the default placeholder is in english, so now the placeholder is passed from props.

Thank you for your contribution!
Can you please update the storybook with examples and provide some screenshots of the change?

Sure! Here is the screenshot! But, about of the storybook, is the .storybook folder? Add a new archive or make changes in any of then file?

You can just edit the stories files and add a new example. See this PR for some reference (specifically this file).
I hope that helps!

I add a example on docs :)

I added an example on storie file, and here is one picture with example too:

repo: segmentio/evergreen


text:
Add base url

Add two options: "addBaseUrl" and "basePrefix". They may be used to control marked's baseUrl option. "addBaseUrl" sets baseUrl to the path of the current file. "basePrefix" adds a prefix if addBaseUrl is also set:
    {
    "addBaseUrl": true,
    "basePrefix": "https://example.com/blog"
    }

Not extensively tested, but seems to work for me.

Hmm I missed one corner case, will come back :)

repo: segmentio/metalsmith-markdown


text:
Seal/Unseal Commands

Seal/Unseal commands to prevent anyone except owners from entering a room.

Fixed in be2cfc98f036105ed31a2a79d5bdfff3e879eef8.

repo: seisatsu/Dennis


text:
Compiling error (PLEASE HELP!!)

Hello so i have recently decided to try out GameSneeze and so proceeded to install and follow instructions to compile, During compiling process i began to get errors at 5%, Here is my terminal output/// I am running Solus Linux
lunatix@psycho ~/gamesneeze $ ./toolbox.sh -b rm: cannot remove '/tmp/dumps': Operation not permitted Building cheat... -- Configuring done -- Generating done -- Build files have been written to: /home/lunatix/gamesneeze/build [  4%] Building CXX object CMakeFiles/gamesneeze.dir/src/core/features/antiaim.cpp.o [  4%] Building CXX object CMakeFiles/gamesneeze.dir/src/core/features/autodefuse.cpp.o [  4%] Building CXX object CMakeFiles/gamesneeze.dir/src/core/features/backtrack.cpp.o [  5%] Building CXX object CMakeFiles/gamesneeze.dir/src/core/features/autoaccept.cpp.o In file included from /home/lunatix/gamesneeze/src/core/features/features.hpp:2,                  from /home/lunatix/gamesneeze/src/core/features/autodefuse.cpp:1: /home/lunatix/gamesneeze/src/core/features/../../includes.hpp:7:10: fatal error: SDL2/SDL.h: No such file or directory     7 | #include <SDL2/SDL.h>       |          ^~~~~~~~~~~~ compilation terminated. make[2]: *** [CMakeFiles/gamesneeze.dir/build.make:104: CMakeFiles/gamesneeze.dir/src/core/features/autodefuse.cpp.o] Error 1 make[2]: *** Waiting for unfinished jobs.... In file included from /home/lunatix/gamesneeze/src/core/features/antiaim.cpp:1: /home/lunatix/gamesneeze/src/core/features/../../includes.hpp:7:10: fatal error: SDL2/SDL.h: No such file or directory     7 | #include <SDL2/SDL.h>       |          ^~~~~~~~~~~~ compilation terminated. In file included from /home/lunatix/gamesneeze/src/core/features/features.hpp:2,                  from /home/lunatix/gamesneeze/src/core/features/autoaccept.cpp:1: /home/lunatix/gamesneeze/src/core/features/../../includes.hpp:7:10: fatal error: SDL2/SDL.h: No such file or directory     7 | #include <SDL2/SDL.h>       |          ^~~~~~~~~~~~ compilation terminated. make[2]: *** [CMakeFiles/gamesneeze.dir/build.make:76: CMakeFiles/gamesneeze.dir/src/core/features/antiaim.cpp.o] Error 1 make[2]: *** [CMakeFiles/gamesneeze.dir/build.make:90: CMakeFiles/gamesneeze.dir/src/core/features/autoaccept.cpp.o] Error 1 In file included from /home/lunatix/gamesneeze/src/core/features/backtrack.cpp:1: /home/lunatix/gamesneeze/src/core/features/../../includes.hpp:7:10: fatal error: SDL2/SDL.h: No such file or directory     7 | #include <SDL2/SDL.h>       |          ^~~~~~~~~~~~ compilation terminated. make[2]: *** [CMakeFiles/gamesneeze.dir/build.make:118: CMakeFiles/gamesneeze.dir/src/core/features/backtrack.cpp.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/gamesneeze.dir/all] Error 2 make: *** [Makefile:91: all] Error 2

install the dependencies lmao

idk what libsdl is on solus but find the name of the package and install it

authors: PsychoLunatix seksea

repo: seksea/gamesneeze


text:
change "x" icon in clearable section

Is there any option to change "x" for clear selection
since i used non regular font, select2 "x" showing nothing
thanks
for now i do it like this :
$('.select2').on('select2:select', function (e) {
  $('.select2-selection__choice__remove').html('x');
});

Unfortunately no. And given the complexity around keeping things accessible, we probably aren't going to implement this.

authors: imunisasi kevin-brown


text:
better debug messages to the math-parser print

when the node isn't recognized, it'd be nice to print some tip to what the node looks like

Do you mean when it just prints out 'extra input not recognized'?

I think I saw "node not recognized" but that place seems good to add detail to as well! :)

With those, the node that wasn't recognized is also printed. I think the only place it isn't printed out is with the extra input error.

I believe it was this line
https://github.com/semantic-math/math-parser/blob/65fef1415a227efe8dac457b7d85c5a018026751/lib/print.js#L144

the node is logged but not part of the error, so I couldn't see it

Ah ok, missed that one entirely.

authors: SirFurness evykassirer

repo: semantic-math/math-parser


text:
Add HTML files generated from Markdown to 9.1.0 release package

See ontology-toolkit issue 12

@sa-bpelakh I think this has been done - can we close this?

Corrected in 9.2.0 release.

authors: rjyounes sa-bpelakh

repo: semanticarts/gist


text:
Delete objects by query

Hi,
Current API can index data in batch, but can only delete objects one at a time.
According to documentation, objects must be deleted one by one:
https://www.semi.technology/developers/weaviate/current/restful-api-references/objects.html#delete-a-data-object
It would be great to enable deletion of objects by query: one call could delete all objects in a class or a group of objects in the class.
Something like:
https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-delete-by-query.html

Just FYI, you can delete all objects by simply deleting the entire class and recreating it.
As for the the "delete by query" idea. I'm absolutely open to such a feature, but given our limited resources, this would require a community contribution.

authors: eostis etiennedi

repo: semi-technologies/weaviate


text:
Mechanism for pruning poor validators

Recreating some of the issues from the old repo.
If a validator with votes currently goes down, this affects the network at some critical mass.
Should we implement a mechanism where if a validator does not forge/vote successively, we remove them from the pool?
Pro
Keep all active validators healthy
Con
They still have stake in network, so removing them may be unfair
Adds an additional abuse vector, if one can cause next validator to fail forge, they can get them removed.

For testnet, this came up, and the solution was to accept a new set of minimal validators.
As we have many many validators, we should be able to adapt if the network ever starts dying off well before we get close to 66%.
So a dead validator or two should be ok with no downside to network.  Closing.

repo: semuxproject/semux-core