Support for Reverse Proxy authentication backends (like authelia)

Summary
Adds support to reverse proxy authentication backends (like authelia) via configured HTTP header.
Related issues
#773
Changes these areas

[ ] Bugfixes
[x] Feature behavior
[ ] Command line interface
[x] Configuration options
[ ] Internal architecture
[ ] Snapshot data layout on disk

Where is REVERSE_PROXY_USER_HEADER actually handled? I don't see any code passing it to some auth/auth skipping mechanism?

Thanks for this PR and the documentation PR to go with it! It looks like it's on a good track so far.
Quick question: Where is REVERSE_PROXY_USER_HEADER actually handled? I don't see any code passing it to some auth mechanism?

Everything is handled by standard RemoteUserMiddleware class from django. I've just created subclass for it to handle customizable header and whitelisting. I was basing this on this.

Let me also explain how this is supposed to work, to ensure that we're on the same page :) :

User visits archivebox, which is protected by auth proxy (let's use authelia for the example, but the pattern is the same for vouch, keycloak etc.)
User signs in in authelia. Authelia takes care of authentication, and is our "source of truth" about user identity. The idea is, that we trust the proxy, it handled authentication properly and now wishes to let us know about it.
Authelia sends login of authenticated user in Remote-User header (it also sends Remote-Email, and some other ones, but the one which we are interested in, is only user). This is the username of the user which we wish to authenticate archivebox side (so it has to match database records).

Other auth systems use different headers (X-Remote-User for example) - that's why, the header name is configurable via REVERSE_PROXY_USER_HEADER config option.

Now, this is also a potential security flaw, as malicious attacker can send it's own Remote-User: admin header and try to log in, mimicing the proxy. Usually it shouldn't be the problem, because when using authelia, archivebox should never be exposed to the world, it should always be proxied through authelia.
But we live in a real world, and misconfiguration accidents happen :( To add extra layer of security, I introduced a REVERSE_PROXY_WHITELIST mechanism. It's very simple concept - we only allow the given list of IP classes (CIDRs), to actually provide Remote-User header. Every other IP sending header is ignored. Usually, this should be configured only to authelia IP. For example, for docker environments setting this to <IP_ADDRESS>/12 should usually be sufficient enough.

We are only interested in IP of the proxy itself, we should never care about the client IP (so, we should never use any X-Forwarded-For and similar headers). This is handled by request.META.get('REMOTE_ADDR') which is raw IP of the connecting service (in this case - the proxy).

By default REVERSE_PROXY_WHITELIST is set to empty string, which means "blacklist everything". This effectively means, this feature is disabled by default - so if somebody doesn't care about and sets up archivebox "out from the box", they are not exposed to any security issues.

Hopefully this clears things up, and explain what I'm trying to build here :)

@pirate @dugite-code Hi, any chance of this PR being merged soon? Or where are things left? It would be quite nice to get it through.

I've been running this patched into the current version of ArchiveBox for a while. As long as the user exists initially the SSO works as expected, however any auto-created users do not have the correct permissions assigned leaving users stuck on the login page with the message: You are authenticated as example.user, but are not authorized to access this page. Would you like to login to a different account? They can manually navigate to the public url and show as logged in.
The user needs to be set as staff and at least given viewing permissions, although it appears you can still add/remove snapshots with just viewing permissions.

What about adding a server config option that adds the RemoteUserBackend to AUTHENTICATION_BACKENDS and adding a note to the config page with something along the lines of "If you enable this, any users using this option with ArchiveBox must be set with correct permissions of ___".
Another option could be to alter RemoteUserBackend.configure_user to add the necessary permissions and flags (depending on more server config options).

This is now documented here: https://github.com/ArchiveBox/ArchiveBox/wiki/Configuration#reverse_proxy_user_header

I've been running this patched into the current version of ArchiveBox for a while. As long as the user exists initially the SSO works as expected, however any auto-created users do not have the correct permissions assigned leaving users stuck on the login page with the message: You are authenticated as example.user, but are not authorized to access this page. Would you like to login to a different account? They can manually navigate to the public url and show as logged in.
The user needs to be set as staff and at least given viewing permissions, although it appears you can still add/remove snapshots with just viewing permissions. Note: you cannot modify auto created users after the fact.

I'm also experiencing this. The experience is broken. Would it be possible to add another config option for which permissions to grant automatically created users?

Would it be possible to add another config option for which permissions to grant automatically created users?

Yes, we recently added this same fix for LDAP auth here: https://github.com/ArchiveBox/ArchiveBox/pull/1335
I would just set is_staff=True and is_superuser=True for now, don't bother with more granular permissions as the rest of the codebase doesn't support row-level permissions yet.
Unfortunately I'm a bit overloaded with paying client work right now so I probably won't get around to implementing this myself, but if you submit a PR to add this I'd be happy to review it!

I'm getting CSRF errors when I try and do things like a re-crawl. I have my  From looking online it seems like there ought to be a setting to allow TRUSTED_HOSTS or otherwise USE_X_FORWARDED_HOST = True should be true in Django I think?
I have my settings as follows:

REVERSE_PROXY_WHITELIST=<IP_ADDRESS>/8
REVERSE_PROXY_USER_HEADER=Remote-User
which I believe should be correct? This is using Authelia and Caddy on top of the Nginx internally for cert management fwiw.

It's possible, can you test if that change fixes it and report back?

find the archivebox source code location on your machine archivebox version | grep PACKAGE_DIR
then edit PACKAGE_DIR/core/settings.py and add USE_X_FORWARDED_HOST = True
restart archivebox to see if that works

I'm getting CSRF errors

Seeing the same during a regular login with the dev docker container. I could fix it with the following in settings.py (no USE_X_FORWARDED_HOST necessary)
CSRF_TRUSTED_ORIGINS = ["https://my.archivebox.domain"]

Side note: The logout button does not work either since it results in a GET request, but needs a POST with CSRF token.

As a quick fix for this I just edited my docker-compose as follows (inserting my reverse proxied external address into the trusted origins line.
services:
    archivebox:
      build:
        context: .
        dockerfile_inline: |
          FROM archivebox/archivebox:dev
          RUN echo 'CSRF_TRUSTED_ORIGINS = ["https://archive.example.com"]' >> /app/archivebox/core/settings.py
      command: server --quick-init <IP_ADDRESS>:8000
      container_name: archivebox

Ok this should be fixed now on dev: 9c35f3dd
I've added CSRF_TRUSTED_ORIGINS to the available config, no need for the dockerfile override hack anymore.


[Improvement][Dev Mailbox] It is recommended to filter non-discussion emails

Search before asking

[X] I had searched in the issues and found no similar feature requirement.

Description
Hi, community members!
At present, many people subscribe to the community mailbox, and there are many emails every day, including discussion emails and github emails. Many github emails do not need to be synchronized to the community mailbox.
Too many useless emails will cause many people to stop looking at their mailboxes and miss key emails. The value of mailboxes is to discuss issues and vote, not to synchronize information
It is recommended to keep the following message types:
github issue type:
[Feature request]
[Improvement request]
[Report a security vulnerability]
Others:
[VOTE]
[DISCUSS]
what do you think?
Are you willing to submit a PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

good suggestion


Inane rambling

[ ] Switch to cards with images for the links section
[ ] Switch documents to a similar card style
[ ] Add missing sections like news
[ ] Go through every single thing in detail
[ ] Go through every Hugo doc page

google insight and mobile crap analysis with YSlow and other...
Front page should be news page, and actual front page should be à propos!

http://aediroum.iro.umontreal.ca/index.php?page=evenements
http://aediroum.iro.umontreal.ca/index.php?page=midiro
http://aediroum.iro.umontreal.ca/index.php?page=pvs

There is an issue with the lists of AG
Add more stuff from recent mails
http://aediroum.iro.umontreal.ca/index.php?page=midiro
http://aediroum.iro.umontreal.ca/index.php?page=pvs&annee=2013-2014

Rewrite news properly

file naming proces, potential issue

get latest docs

get latest docs

hovering over links in navbar
the dotted contour when using the hamburger menu from button style + add a hover button thing like in URL
{{ $currentPage.Kind }}
is home for homepage
because Accueil should be always visible left
Dropdown needs fixing

hovering over links in navbar
the dotted contour when using the hamburger menu from button style + add a hover button thing like in URL
{{ $currentPage.Kind }}
is home for homepage
because Accueil should be always visible left
Dropdown needs fixing

Instead of having accueil always to the left when compressed, have the actual active button showing up to the left instead

Instead of having accueil always to the left when compressed, have the actual active button showing up to the left instead

rewrite style.css properly

rewrite style.css properly

footer icons and centered vertical horizontal
use cards maybe?

footer stick to bottom

Votre message est en cours d'envoi.

Votre message a été envoyé avec succès.

Votre message n'a pas pu être envoyé.

Rewrite stuff for alerts in form
Favor SSL in links

Pages to fix:
http://localhost:1313/nouvelles/
http://localhost:1313/evenements/midiro/
http://localhost:1313/documents/proces/
404

try to remove seconds in midiro.yml and nouvelles.md
yamllint midiro stuff
add description and présentation in yamllint
add themes

nouvelles and midiro, just use list

archetype for midiro

key/value crap and folder names english/french

midiro paragraphs

pagination and shit
custom midiro archetype

Center menu in a nice spaced way

Use slug in all of the midiros or rename files
Remove layout from pages that don't use them
Move stuff out of themes folder imo, maybe keep basic HTML/CSS stuff? and rename as bootstrap
Don't use every single JS crap, only the minimum
Use Sass but don't include using ingnoreFiles
https://gohugo.io/content/summaries/
editor:                     ""
footnoteAnchorPrefix:       ""
footnoteReturnLinkContents: ""
languageCode:               ""
log:                        false
newContentEditor:           ""
noChmod:                    false
noTimes:                    false
paginate:                   10
paginatePath:               "page"
verbose:                    false
verboseLog:                 false
ignoreFiles = [ "\.foo$", "\.boo$" ]
Put this as related to my languge fr
[Languages.en.blackfriday]
angledQuotes = false

Fix issue with sitemap where /midiros/ and /nouvelles/ are repeated, among others.

Hugo Hugo folder

https://gohugo.io/tutorials/deployment-with-rsync/


Delete All Left should still function when any text is selected/highlighted

Currently, using cmd + backspace when any text is selected results in a normal backspace action.
My expectation is that anything selected and anything to the left of the selection should be deleted.
If I wanted the current functionality, I would simply use backspace without cmd.

Hi @alexandrudima, I would like to work on this issue. Do you have any tips as to where to start either file-wise or implementation wise?

@mflan48 Here it is:
https://github.com/Microsoft/vscode/blob/f3e1c7dbabd38c02a7d5f0e2e0e1c4016479166c/src/vs/editor/contrib/linesOperations/linesOperations.ts#L560-L590

Okay thank you, I will be working on this issue!

Hi, @alexandrudima, I've been working on this issue and believe I have a solution to it. However, I believe that implementing this feature will cause current test cases to be invalid. Specifically, in the "should work in multi cursor mode" test (located at line 250 in file 'linesOperations.test.ts' at the following path 'vscode/src/vs/editor/contrib/linesOperations/test/linesOperations.test.ts') the following tests will fail
editor.setSelections([new Selection(2, 2, 2, 2), new Selection(2, 4, 2, 5)]);
deleteAllLeftAction.run(null!, editor);
assert.equal(model.getLineContent(2), 'ord', '002');
editor.setSelections([new Selection(4, 3, 4, 3), new Selection(4, 5, 5, 4)]);
deleteAllLeftAction.run(null!, editor);
assert.equal(model.getLineContent(4), 'lljour', '004');
editor.setSelections([new Selection(5, 3, 6, 3), new Selection(6, 5, 7, 5), new Selection(7, 7, 7, 7)]);
deleteAllLeftAction.run(null!, editor);
assert.equal(model.getLineContent(5), 'horlworld', '005');
If this feature is implemented, I believe that the expected output for each test should be 'd', 'jour', and 'world' respectively rather than the current 'ord', 'lljour', and 'horlworld' values. Can you let me know if this should be the expected output and if so, how I should proceed with implementing this feature and submitting a PR?


collection.clear() on a collection with unique index does not allow you to re-add any of the previously used data

I have a collection created like so:
db.addCollection("gData", {unique: ['RIN']});
This data is loaded from a file.
In some use cases of my application I want to allow to user to re-read the file, so I use:
let gData = db.getCollection("gData");
gData.clear();

When I try to re-read the file, I get duplicate key errors.  I've verified that the collection is indeed empty after calling clear().
The only way I can get it to work correctly is if I completely remove the collection and re-add it.

should be fixed now, I think we discussed this in #462 but fix never got added

i believe this was fixed so closing.. reopen if still issue

Unfortunately I can see the same issue on the latest version [1.4.2]. Please reopen this issue.

No need to reopen the issue, it's fixed but only on the master.
It has been fixed after the 1.4.2 release.

Thanks, yes I just verified here that the latest master branch works as expected.
I thought this was done before official 1.4.2 release sorry, once we test out another new option we will try to get techfort to update 'releases' and npm to include this.

Will publish 1.4.3 asap
On Fri 3 Feb 2017, 01:07 obeliskos<EMAIL_ADDRESS>wrote:

Thanks, yes I just verified here
https://rawgit.com/techfort/LokiJS/master/examples/sandbox/LokiSandbox.htm#rawgist=https://gist.githubusercontent.com/obeliskos/4cb05015e94286f63f510c2716b9ca1d/raw/acaa87aea6b22b26fc900b1f291489cf4aaef9b0/collectionClearWithUniqueIdx
that the latest master branch works as expected.
I thought this was done before official 1.4.2 release sorry, once we test
out another new option we will try to get techfort to update 'releases' and
npm to include this.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/techfort/LokiJS/issues/522#issuecomment-277135829,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AD8FfZcNAt4r06DIuPSmwobi6rS6egU1ks5rYn25gaJpZM4LWkux
.

Great. Thanks a lot guys.
03.02.2017 9:03 AM "techfort"<EMAIL_ADDRESS>napisał(a):

Will publish 1.4.3 asap
On Fri 3 Feb 2017, 01:07 obeliskos<EMAIL_ADDRESS>wrote:

Thanks, yes I just verified here
<https://rawgit.com/techfort/LokiJS/master/examples/
sandbox/LokiSandbox.htm#rawgist=https://gist.githubusercontent.com/
obeliskos/4cb05015e94286f63f510c2716b9ca1d/raw/
acaa87aea6b22b26fc900b1f291489cf4aaef9b0/collectionClearWithUniqueIdx>
that the latest master branch works as expected.
I thought this was done before official 1.4.2 release sorry, once we test
out another new option we will try to get techfort to update 'releases'
and
npm to include this.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/techfort/LokiJS/issues/522#issuecomment-277135829,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/
AD8FfZcNAt4r06DIuPSmwobi6rS6egU1ks5rYn25gaJpZM4LWkux>
.

—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/techfort/LokiJS/issues/522#issuecomment-277187226,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AXGgp-nyEMnvgGBR9dCW9-9fE5W5MpxCks5rYt9RgaJpZM4LWkux
.

@lechu1985 I should clarify that "asap" is as soon as @obeliskos is finished testing out another feature that will make it into 1.4.3.

Thanks @techfort, i'll give throttledSaves a run through myself this weekend and if all looks good I will just make that option true by default and we can then release it.

@techfort, I have tested and unit tested the throttledSaves functionality but also expanded it to more completely provide clean db saves and loads.
As of commit 1000 (wow two landmarks) this should be complete, maybe give a day or so for early adopters to test but it should be ready to go.
Fixes/features made since 1.4.2 :

fixed overlapping saves/loads by implementing throttling saves and loads
simulate async in LokiMemoryAdapter (for unit testing)
simplesorts on unfiltered resultsets can leverage binary indices
clone inserts now return obj with $loki and meta
collection clear now clears unique and binary indices leaving in place (by default)

@obeliskos thanks a million, if you can ping me when you think this is ready for publishing i will get on it right away.
Thanks a lot as usual for the great work.


[Feature Request] Provide (x, y) coordinates

A very common use case is detecting the cursor coordinates on the screen to render auto-suggestion. Would you consider exposing a method to get the coordinates? Something like Edit.getSelection(): Range.
Also, do you know any autosuggestion dropdown examples out there?

Every onChange gives you a Position object for this purpose and the getState method computes the same.
The only example of suggestions I've made can be found here: https://github.com/FormidableLabs/trygql/tree/main/page/src/editor


Add view and logic for Sixteen Segment display

Closes: #101
This sixteen segment still does not look that aesthetically pleasing, I am currently working to improve it's looks
Describe the changes you have made in this pr
Add svg and logic for Sixteen Segment display
This is how it look on simulator

@blane1257 @fpintos, do you think if this is implemented as a 16 bit input instead of 16 separate inputs, it will be better?

Indeed, using a 16bit input will make it simpler to use in most cases. The design with individual pins makes it virtually impossible to put these side by side without large gaps and lots of wires.

Yes, I think a 16 bit input is the way to go.

I also think the display should be made horizontally thinner, to more closely resemble its 7 segment counterparts

@sanctophagus can you replace the 16 individual pins and replace it one 16 bit input?

If we do go with the single input we will need to have it clearly documented so people know which bit corresponds to what pin.
For the HexDisplay this is not much of an issue, since one expects the hex mapping anyway, but in this case it would not be immediately clear.

@blane1257 Sure I will work to make it thinner.
@satu0king  @fpintos  I will make it one 16 bit input and document it, So that users find it easy to use.

I am thinking of converting it to sixteen+one bit input box (segment + dot). Currently I have 17 bit input, how should I proceed?
Also now it resembles its 7 Segment Counterpart!

that looks good! you should have the 16 bit input on the top, similar to the HEX display, with the decimal input on the bottom

Okay!!
I will make it that way!

It is looking very nice.

@satu0king @fpintos @blane1257 I've updated the PR, please review

It looks good to me; I would still suggest moving the new element to a new file, and you can revert the change in UX.js.

I think we can delay this for now. We can structure the codebase and refactor everything in a separate issue. What do you say @fpintos ?

Make the optimization changes @fpintos suggested and we are good to go. Lets keep the function in modules.js for now. We will have to undergo a complete refactor soon, we will handle it then. After the PR is merged, @sanctophagus raise an issue on https://github.com/CircuitVerse/CircuitVerseDocs regarding documenting the module.

Sounds good.
Sent from Mailhttps://go.microsoft.com/fwlink/?LinkId=550986 for Windows 10

From: Satvik Ramaprasad<EMAIL_ADDRESS>Sent: Tuesday, March 5, 2019 7:37:17 PM
To: CircuitVerse/CircuitVerse
Cc: Fabio Pintos; Mention
Subject: Re: [CircuitVerse/CircuitVerse] Add view and logic for Sixteen Segment display (#170)
It looks good to me; I would still suggest moving the new element to a new file, and you can revert the change in UX.js.
I think we can delay this for now. We can structure the codebase and refactor everything in a separate issue. What do you say @fpintoshttps://github.com/fpintos ?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/CircuitVerse/CircuitVerse/pull/170#issuecomment-469955431, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AECvQ742SWJaHnNeV327QHny94rJFtyRks5vTzftgaJpZM4ba4dQ.

@satu0king @fpintos @armudgal Please review this PR. I've made the requested changes.

Please update this branch with our master.

@armudgal I have rebased the branch on master.

@satu0king Hey, this is ready for merge. I would want you to take the final look and merge it. Thanks

@satu0king @fpintos may I know your views on this one?


[BREAKING] Move responsive text and sizing media queries to _responsive.scss file

The responsive text and sizing media queries will no longer be available in the "basic" packages, but will still be available with "standard" and "all" packages.

Completed.


Code Cleanup

This PR makes a few changes to some of the core modules.  Namely it:

Improve efficiency by decreasing debug logging
Improves test coverage
Removes unnecessary code around Enums
Removes an external dependency on the enum34 package

[Current coverage][cc-pull] is 98.54%

Merging [#111][cc-pull] into [master][cc-base-branch] will decrease coverage by 0.43%

Powered by Codecov. Last updated by [060927b...eff3636][cc-compare]
[cc-base-branch]: https://codecov.io/gh/opalmer/pywincffi/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/opalmer/pywincffi/compare/060927bd4036a49115c1d93b053c8804640aa957...eff3636116deb75a79b7962cbf9944fdd9ef8119?src=pr
[cc-pull]: https://codecov.io/gh/opalmer/pywincffi/pull/111?src=pr


Run sync task in its own thread

Closes #1124

Successful PR Checklist:

[x] Tests

[ ] (not applicable?)

[ ] Documentation

[ ] (not applicable?)

PR label(s):

[x] https://github.com/procrastinate-org/procrastinate/labels/PR type%3A breaking 💥
[ ] https://github.com/procrastinate-org/procrastinate/labels/PR type%3A feature ⭐
[ ] https://github.com/procrastinate-org/procrastinate/labels/PR type%3A bugfix 🕵
[ ] https://github.com/procrastinate-org/procrastinate/labels/PR type%3A miscellaneous 👾
[ ] https://github.com/procrastinate-org/procrastinate/labels/PR type%3A dependencies 🤖
[ ] https://github.com/procrastinate-org/procrastinate/labels/PR type%3A documentation 📚

Running the sync task in its own thread ensures that it is more isolated. The test looks a bit constructed but fails (even without any exception) when the sync task runs in the main thread (thread_sensitive=True).
I tried to find any negative consequences (especially for Django), but as db connections in Django are created per thread, I don't see any. However, I am not absolutely sure.

The discussions in Discord are prompting me to wonder: if we're considering changing this, should we consider running sync tasks in subprocesses ? It would avoid threading issues and would make it much easier to kill a task or to send a signal, the same way we do with async. But I don't want this decision to be made lightly and later regretted.

When doing IO-heavy stuff, an async task is preferred over a threaded sync task. (If the task depends on a non-async third-party library, then the chances are high that there is an async alternative.) On the other hand, if the task is compute-heavy, then running it in its own process is the way to go.
As mentioned, we also could make this configurable. As an option for the worker, for example as huey does it (but they chose threaded as the default), or as an option on the task itself (something like @app.task(sync_threaded=True). But even then, the question remains what the default should be (in my opinion, for the above-mentioned reason, a separate process).

If we did:
async def -> async (good for I/O & high level of parallelism, bad for CPU)
def -> subprocess (low level of parallelism, not specifically bad for I/O, good for CPU)
That would be not that far from what we have today, would it ?

It sounds reasonable to remove the thread sensitivity when wrapping sync tasks into a Thread.
Maybe this change could be merged while the conversation of introducing sub-processes for CPU bound tasks carries on?

If we did:
async def -> async (good for I/O & high level of parallelism, bad for CPU)
def -> subprocess (low level of parallelism, not specifically bad for I/O, good for CPU)

Yes, this is what I had in mind (when not making it configurable). We would then run the sync task in a ProcessPoolExecutor. I also looked a bit around how other distributed (Python) task queues handle this:

Celery -> process
RQ -> process
Huey -> thread by default, but separate process optional
Django-q2 -> process, but using a worker pool
django-task -> inside same thread and process

So, the majority seem to use a separate process.
As you already mentioned, another advantage of using a separate process is that it can be killed. That way, we could even introduce some final shutdown timeout that forces the worker to be entirely stopped (see discussion on Discord). I don't know if this is even possible when only using threads. Another feature that would be possible by using a separate process for a sync task is to specify the maximum time a task can take.

Maybe this change could be merged while the conversation of introducing sub-processes for CPU bound tasks carries on?

Either way, we said it is a breaking change (is it?!) targeted at v3. So, it won't be in a near-term 2.x release. Or should we merge this one into the main branch and work on a "sub-process" variant in the v3 branch?

Either way, we said it is a breaking change (is it?!) targeted at v3. So, it won't be in a near-term 2.x release. Or should we merge this one into the main branch and work on a "sub-process" variant in the v3 branch?

A merge into main is fine if someone needs it prior to v3 release.
It could be argued it is not a breaking given there is no mention in the docs that sync tasks block each other, and I can hardly imagine a use of this library using long running sync tasks because of it.
That said, my comment was just about merging it into v3. Maybe it won't ever make it to the release if everything is a sub-process but we are better off iterating without thread sensitivity until then.

A merge into main is fine if someone needs it prior to v3 release. It could be argued it is not a breaking change given there is no mention in the docs that sync tasks block each other, and I can hardly imagine a use of this library using long running sync tasks because of it.

Yes, I think so, too. One can even argue that the current implementation is even a bug as concurrent sync tasks are never processed in parallel (but consecutively in the main thread).
@ewjoachim Would it be ok if we merge this into the main branch, make a minor release, and open another issue / PR with a subprocess implementation?

Yep. Will try to review asap !

Sure, no hurry. Just wanted to know if it's ok when I switch the target branch. I will change it to main.


chore: add arm64 image to build (#478)

Fixes https://github.com/argoproj/applicationset/issues/478

LGTM
Thanks @crenshaw-dev !

0.4.0 does not seem to have an arm64 build: https://quay.io/repository/argoproj/argocd-applicationset?tab=tags&tag=latest (neither does latest)

Confirming 0.4.1 also doesn't have an arm64 build -
ArgoCD 2.3.X doesn't fully support arm architecture then, since applicationset is now bundled in
Manifest
    "Name": "quay.io/argoproj/argocd-applicationset",
    "Digest": "sha256:7433ff9dc5f4fccf13f71be514982740f32cd31707734ce8934f149d26163590",
    "RepoTags": [
        "v0.1.0",
        "v0.2.0",
        "v0.3.0",
        "latest",
        "v0.4.0",
        "v0.4.1"
    ],
    "Created": "2022-03-10T13:53:33.310145635Z",
    "DockerVersion": "20.10.12",
    "Labels": null,
    "Architecture": "amd64",
    "Os": "linux",
    "Layers": [
        "sha256:24496884391b0c292a71ad3f46bb689ff34f0dee4454901252ba7d52a977bbb0",
        "sha256:4f42d2d5e1f6322e9dffb4a18f539e6d5dec6b36f66f10c4d4bce0dff3ec3c26",
        "sha256:1c3842caf26c905b022ea2300cdd60bc85116423a4eb14345994c62d02d7c60f",
        "sha256:85f7cff480492b56a2da01acaf5804b5726201440e7c612770419e101ca3874a",
        "sha256:589e091e1b0884339672c761874d3936f498672823658650612d006338f333c6",
        "sha256:860fc5c078f037f1121382b94ae4c31a01358976e0f037ada359832ecb49c77e",
        "sha256:4524a3f3b4fa275afba586b815081c242d415996be6a8f806c22f007518459ce",
        "sha256:d309de07404e1ec9c08ade4df5ab79c1b9e8c22575356b4aa7cd3b598e163931",
        "sha256:892445a15b42f5c076f76790fb574cc7bec152ca8efa37c2658037565150f613",
        "sha256:85c97bb3d0550d20d5812312eda67ad71eec3c848c57740128dda979bea6898e"
    ],
    "Env": [
        "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
        "DEBIAN_FRONTEND=noninteractive"
    ]
}

Can confirm this too, while adding ArgoCD to microk8s via the Helm chart.
https://github.com/canonical/microk8s-community-addons/pull/35


Added to Element.insertAdjacent* to externs

This is a pull request for (https://github.com/google/closure-compiler/issues/3516)
Adds support for Element.insertAdjacentElement, Element.insertAdjacentHTML, and Element.insertAdjacentText. These methods have good browser support have been added to w3c_dom4.js.

Are we looking to merge this?

Please address the failures in the Travis build:
Tests run: 181, Failures: 1, Errors: 0, Skipped: 2, Time elapsed: 10.704 sec <<< FAILURE! - in com.google.javascript.jscomp.CommandLineRunnerTest
testForOfTypecheck(com.google.javascript.jscomp.CommandLineRunnerTest)  Time elapsed: 0.71 sec  <<< FAILURE!
com.google.common.truth.ComparisonFailureWithFacts:
Expected exactly one warning or error
Errors:
JSC_HIDDEN_SUPERCLASS_PROPERTY_MISMATCH. mismatch of the insertAdjacentHTML property type and the type of the property it overrides from superclass Node
original: function(this:Node, string, (TrustedHTML|string)): undefined
override: function(this:Element, string, string): undefined at externs.zip//w3c_dom4.js line 268 : 0
JSC_INEXISTENT_PROPERTY. Property meow never defined on Dog at input0 line 8 : 6
Warnings:
expected: 1
but was : 2
	at com.google.javascript.jscomp.CommandLineRunnerTest.test(CommandLineRunnerTest.java:2783)
	at com.google.javascript.jscomp.CommandLineRunnerTest.test(CommandLineRunnerTest.java:2764)
	at com.google.javascript.jscomp.CommandLineRunnerTest.testForOfTypecheck(CommandLineRunnerTest.java:168)

(https://www.chromestatus.com/feature/5650088592408576 for more context on TrustedHTML. I believe Element.protoype.insertAdjacentHTML needs to accept a TrustedHTML but I'm not super familiar with Trusted Types)

@googlebot I fixed it.

WIP- Fixing internal test failures.

Update: WIP; fixing some more of the pending internal test failures.

Out of the 3 properties being added to Element in the browser externs, one property (insertAdjacentHTML) has multiple declarations across internal google3 code, causing ~hundreds of redeclaration errors.
I will proceed to merge the changes for the other two properties Element.insertAdjacentElement and Element.insertAdjacentText.


Added a color logging module

I have to review few things and maybe remove the color thing you did in the utils module which will be useless with the new python logging implem.

How is it going here ?


WSL Hangs

Windows Version
Microsoft Windows [Version 10.0.19045.3324]
WSL Version
<IP_ADDRESS>
Are you using WSL 1 or WSL 2?

[X] WSL 2
[ ] WSL 1

Kernel Version
Default Distribution: Ubuntu-22.04
Default Version: 2
Distro Version
Ubuntu-22.04
Other Software
No response
Repro Steps
Initially I had an issue with the VM's taking up a lot of my memory, so I attempted to modify the .wslconfig file to limit the memory, I had it set to
[wsl2] memory=4GB
I'm guessing that wasn't enough memory because then I couldn't actually start anything, e.g. a container in Visual Studio Code. Also any command in wsl would just hang and my Docker Desktop would appear to hang before giving an error of "unable to calculate image disk size"
I tried deleting the .wslconfig file but everything is still stuck in this state.
I've tried uninstalling and re-installing everything (wsl, the wsl distribution, docker desktop) but nothing. WSL will respond after a restart, but once it tried to install Ubuntu, it just behaves incredibly slow. It will eventually get to adding a username and password, but after that it hangs. The process running the install also appears to use very little resources.
I don't know what else to try, I feel like I've deleted any docker related folder and uninstalled/reinstalled everything possible. I've attached the WSL log files if that helps.
Expected Behavior
'wsl --install Ubuntu-22.04' installs and launches in a timely manner
Actual Behavior
'wsl --install Ubuntu-22.04' hangs
Diagnostic Logs
WSL logs
WslLogs-2023-08-30_12-31-45.zip

I didn't realize you had to run an operation when collecting logs. Here's logs for when I tried to start Ubuntu
WslLogs-2023-08-30_17-18-17.zip


ANE support

The top level readme mentions that current device support is limited to COU and GPU, is ANE support in the works?

This is a bit above my pay grade, but my understanding is that

The ANE is mostly designed as an inference only device that supports only forward prop
The ANE has layer support implemented in hardware and can't be easily extended (?)
The ANE only supports half Float (Float 16) accelerated compute, everything is managed / converted to it by the runtime.
The ANE requires talking to the OS runtime for scheduling, and there's never a guarantee that you can be resident on the ANE, you can just request it, and hope you get a time slice
The API is only exposed via CoreML / Swift
Internally the API is Espresso  (? IIRC from stack traces) / a C++ library which isn't public
CoreMLTools, the public pythonic way to create CoreML models has a CoreML runtime exposed, but requires CoreML model specs (protobufs) to run on the ANE

I doubt that Apple would let an open source project leak the internal tooling of the ANE Runtime (Espresso?)
There's some ANE reverse engineering work that's sporadically happening, but I suspect this will be Metal / GPU for a while unless Apple exposes some cool new ways to publicly run arbitrary programs on the ANE (which would be dope)
Sorry to pop bubbles, and apologies if any of this is factually incorrect!

@vade basically said it all already, but at the moment we don't have plans to support ANE in MLX given it is a closed source API.
If / when that changes we will be first in line to add it as a device.

Apple blocks its developers.  It always has.  That way, only Apple can write good code modern.  Then they don't and ignore their desktop anyway.  New features are always only for integration with devices.  I call their development environment block-ware, and Apple excels at it.  Developers can't use the ANE.  They can't use native TTS or STT.  So how can one write a modern app?  Pyobjc is a mess.  Apple breaks their own peripherals with new versions of MacOS, etc.  So just buy their new stuff, if they bother to create it, and forget about developing anything meaningful on their desktop platform.

What are you talking about?
I ship / have shipped code for ANE via CoreML.
You can use TTS via NSSpeechSynthesizer or 3rd party APIs. You can use STT with NSSpeechRecognizer or via  3rd party tools like Whisper which have ironically been leveraged to use CoreML or Metal (see Whisper.cpp)
I'm not sure what your problem is other than not having accurate information.

@Vade, On Apple Silicon?  Neither API works on my M1 Mac.

Yes, on Apple Silicon.

BTW, yes pywhispercpp does work, but I don't think that uses either NSSpeechRecognizer.  Whispercpp uses its own model which means running one on precious unified memory.  If you have a code sample that does work on Apple silicon through NSSpeechRecognizer, I'd love to see it.

This is getting off topic. I never claimed Whisper CPP uses apple native API. it clearly doesnt. The point I was making is there are both working native and 3rd party solutions for TTS and STT.

@vade, I misread you.  Yes CoreML does work, but I've been unable to convert Huggingface models to .mlmodel format.  There is one example for doing this, but I have not been able to extend the method to converting other models.  And the example says the new model won't be as good anyway because the conversion process is lossy.

CoreML is def a bit of a black art for conversion. We've had to learn a ton. Best to check Apples CoreML Tools repo / examples and git issues for guidance. The conversion process is only lossy if you choose to natively support the neural engine which as stated in this issue only supports 16 bit float natively. You an run CoreML on CPU or GPU at native 32 bit float however.

@vade, I appreciate your reply.  Thank you, but I think I'm done trying to get Apple's block-ware to run.  I don't want to "learn a ton" for something that should only require a simple API call.  But that's what Apple does to its developers.  Something that takes five minutes on Linux takes months on Apple.  Why?  Because it's block-ware.  It's intended to be impossible or nearly impossible.  Apple gives users the best user experience, but it screws its would-be developers.  As I said, Apple wants a monopoly on meaningful development.  Then it doesn't bother.   I loved xcode years ago.  Now it's a nightmare.  They discontinued their best developer tools like QuartzComposer.  Why?  Because that's for in-house developers.

@MikeyBeez I agree with you somewhat. I did had trouble converting my model to CoreML because it's impossible to implement SVD op using whatever basic op implementations exist in CoreMLTools. I was stuck at this problem for ~8 months. It took me 2-3 days to do the same with LibTorch-Lite library. There was no support for FFT ops for 3 years since requested. Still there's no support 5-dimensional arrays in CoreML.
CoreML is hard to use unless Apple's in-house developers build with it.
I was super surprised to see Apple released Stable Diffusion models converted to CoreML to run on-device on iPhone while I couldn't run my comparatively lightweight model (<300 MBs) on 1024x1024 images!

What about https://github.com/apple/ml-ane-transformers?

Top is inference only as ANE doesnt support back prop as stated earlier
Second is private API / reverse engineering of ANE, which - if you think about it, wont be sanctioned, supported by Apple in any real scenario.
Now that MLX Swift exists, in theory there ways of doing zero copy CoreML Custom layers implemented in MLX, so you can take a model, cut it up so the graph that has operations that can run on ANE run on ANE, and layers that cant, can be implemented in MLX
In theory its best of both worlds, but requires ad hoc support on a per model implementation (or at perhaps better phrased as per architecture)


Use VSC API to open browser window

https://code.visualstudio.com/updates/v1_31#_open-resources-in-a-browser

npm package opn has not been removed.


[BUG]

Acknowledgement of preliminary instructions

[X] I have read the preliminary instructions, and I am certain that my problem has not already been addressed.
[X] I have thoroughly looked through the available Wiki articles and could not find a solution to my problem.
[X] I am using the latest version of Bloxstrap.
[ ] I did not answer truthfully to all the above checkboxes.

Bloxstrap Version
v2.80
What problem did you encounter?
This has been happening since the v2.70 update of bloxstrap  but when im playing a certain game bloxstrap just freezes and i cant close it or do anything and the only way to make it close is to sign out and sign back in
Bloxstrap Log
N/A

Does this happen when you use the original Roblox launcher?

yes it does but it closes it for me tho
On Tue, Oct 22, 2024 at 3:11 AM pizzaboxer @.***> wrote:

Does this happen when you use the original Roblox launcher?
—
Reply to this email directly, view it on GitHub
https://github.com/bloxstraplabs/bloxstrap/issues/3392#issuecomment-2428869201,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/BMKBVJCCOMHFBYD466EFTUTZ4YQGZAVCNFSM6AAAAABQLK5WTGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMRYHA3DSMRQGE
.
You are receiving this because you authored the thread.Message ID:
@.***>

but it closes it for me tho

Not a discrepancy on our end. Invalid issue.


Regme is non-functional in Safari

Not sure what the issue is, but we've been told from fagkom that there's issues with regme on Safari. A lot of them seem to use Safari, so it's kinda sorta a big deal.
Not quite sure what the deal is, we were told it was "some sort of j-son error" or something of the like.

This is maybe fixed? We couldn't reproduce the bug, so closing for now.


Detect Mouse Click is Broken

Version: 2.7.2
Only clicking on ScreenToGif itself (border or toolbar) is detected XD
In the following gif, I clicked 6 times: 3 times on the right border of this application itself, 3 times on the webpage in Firefox.

OH NO, tonight I'll make a quick fix!

Strange, it's working here. Do you have that option enabled?

Fixed. Download again v2.7.2


[CELEBORN-517][IMPROVEMENT] Optimize stopTimer/startTimer cpu cost

What changes were proposed in this pull request?
startTimer and  stopTimer cost too much CPU, especially cost on metricNameWithLabels. This pr improve the logic

Why are the changes needed?
Does this PR introduce any user-facing change?
How was this patch tested?

ping @FMX @waitinfuture @nafiyAix


Security updates or enterprise support for tools and libraries used by SPFx

What type of issue is this?
Question
What SharePoint development model, framework, SDK or API is this about?
💥 SharePoint Framework
Target SharePoint environment
SharePoint Online
What browser(s) / client(s) have you tested

[ ] 💥 Internet Explorer
[X] 💥 Microsoft Edge
[ ] 💥 Google Chrome
[ ] 💥 FireFox
[ ] 💥 Safari
[ ] mobile (iOS/iPadOS)
[ ] mobile (Android)
[ ] not applicable
[ ] other (enter in the "Additional environment details" area below)

Additional environment details

Latest Microsoft Edge
SPFx version, 1.13.1
Node.js version, LTS 14
etc

Issue description
We are starting our journey into SPFx development but reached a bottleneck with the node.js supported by the current SPFx 1.13.1 which is either LTS14 or LTS12 and are unable to get agreement from the internal security team to install LTS 14 because latest version of Node.js is available and we are still trying to justify in myriad ways to allow us to install NPM and Node.js.
The outstanding concern is the SLA support in case of any security vulnerability is identified in any of the tool, e.g. gup, react.js, etc.. and how soon these can be patched ready to be deployed.
We managed to find enterprise support for Gulp https://gulpjs.com/docs/en/support/for-enterprise/#enterprise-ready-open-source-softwaremanaged-for-you.
Are there any enterprise support to patch security vulnerabilities for Yeoman, React.js, Node.js , etc?
We are interested to find out how other companies having Cyber Essentials Plus accreditation deal with the above scenario.

While we will be migrating to Node 16 in the future, the main request / question is outside the scope of this issues list.

@patmill : I understand that Node js will be upgraded soon to Node 16 for the latest SPFx version. However currently SPFx requires Node.js v12 or v14 , React v16.13.1 and Typescript v3.9 and wonder how security vulnerabilities found in the libraries/tools are addressed.

Vulnerabilities found in code that runs in the service (say, react) are fixed and rolled out.  React isn't actually in your bundle, it's externalized and provided by the framework at runtime.  Vulnerabilities in libraries that you consume would need to be patched / rebuilt / deployed by you.  We fix our toolchain to patch known vulnerabilities as well.


tests: Exit riscv_asmtest script with simulator status code

It will be helpful to check if the instruction simulate well
Change-Id: I5faa435fad79601682126ee7978d8444093df900

Blocked by #890


Add function for testing that type can be resolved

In case when unresolved type somewhere deep inside the struct we can known what type trigger cascading failures. That’s how original logic works.
Reporting is still awful but I do not see how can I make proper infrastructure for it.

@kant2002 do you still think we need this? Sadly, I can't remember what the original intent was.


select method not translating var names into registers

as in screenshot, self explainatory

I am currently working on a completely new version based on an already existing language. the current syntax will not be supported. I hope I will succeed. Our discord server https://discord.com/invite/KSVjXufkA9


workspaces: add production configuration

Let's try this again, only without the UI components.  Those will be added in a future PR once things settle.
The intention here is to make sure that workspaces gets its ApplicationSet rendered correctly and comes alive.

/lgtm

/lgtm

/lgtm
/hold please remove hold when you are ready to get it in and monitor the deployment

/unhold

/retest


Cannot install private packages

Describe the bug
Cannot install private packages
To Reproduce
Steps to reproduce the behavior:

Install a private package without being logged in
It fails as it should
Login
It still fails

sam@sam-gl502vs : ~/W/test/foo
[1] % npm login
Username: nfour
Password:
Email: (this IS public) ...
Logged in as nfour on http://localhost:4873/.

sam@sam-gl502vs : ~/W/test/foo
[0] % yarn add @temando/errors
yarn add v1.13.0
warning ../package.json: No license field
[1/4] Resolving packages...
error An unexpected error occurred: "http://localhost:4873/@temando%2ferrors: no such package available".
info If you think this is a bug, please open a bug report with the information provided in "/home/sam/W/test/foo/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.

When I set the registry in npm back to the default NPM registry, it all works as expected.
I have also tried purging ~/.share/local/verdaccio

My .npmrc looks like this:
//registry.npmjs.org/:_authToken=SNIP
sign-git-tag=true
logLevel=quiet
registry=http://localhost:4873/
//localhost:4873/:_authToken="SNIP"
ca=null

Expected behavior
Can install private packages
Configuration File (cat ~/.config/verdaccio/config.yaml)
The config file is unmodified - nothing special in it.
Debugging output
[130] % NODE_DEBUG=request verdaccio
 warn --- config file  - /home/sam/.config/verdaccio/config.yaml
 warn --- Plugin successfully loaded: htpasswd
 warn --- Plugin successfully loaded: audit
 warn --- http address - http://localhost:4873/ - verdaccio/3.11.6
REQUEST { url: 'https://registry.npmjs.org/@temando%2Ferrors',
  method: 'GET',
  headers:
   { Accept: 'application/json;',
     'Accept-Encoding': 'gzip',
     'User-Agent': 'npm (verdaccio/3.11.6)',
     Via: '1.1 8dd630e1f5f1 (Verdaccio)' },
  encoding: null,
  gzip: true,
  timeout: 30000,
  strictSSL: true,
  callback: [Function] }
REQUEST make request https://registry.npmjs.org/@temando%2Ferrors
REQUEST onRequestResponse https://registry.npmjs.org/@temando%2Ferrors 404 { date: 'Fri, 15 Mar 2019 00:57:50 GMT',
  'content-type': 'application/json',
  'content-length': '21',
  connection: 'close',
  'set-cookie':
   [ '__cfduid=SNIP; expires=Sat, 14-Mar-20 00:57:49 GMT; path=/; domain=.registry.npmjs.org; HttpOnly' ],
  'cf-ray': 'SNIP',
  'expect-ct':
   'max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"',
  vary: 'Accept-Encoding',
  server: 'cloudflare' }
 http --> 404, req: 'GET https://registry.npmjs.org/@temando%2Ferrors' (streaming)
REQUEST reading response's body
REQUEST finish init function https://registry.npmjs.org/@temando%2Ferrors
REQUEST response end https://registry.npmjs.org/@temando%2Ferrors 404 { date: 'Fri, 15 Mar 2019 00:57:50 GMT',
  'content-type': 'application/json',
  'content-length': '21',
  connection: 'close',
  'set-cookie':
   [ '__cfduid=SNIP; expires=Sat, 14-Mar-20 00:57:49 GMT; path=/; domain=.registry.npmjs.org; HttpOnly' ],
  'cf-ray': 'SNIP',
  'expect-ct':
   'max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"',
  vary: 'Accept-Encoding',
  server: 'cloudflare' }
REQUEST end event https://registry.npmjs.org/@temando%2Ferrors
REQUEST has body https://registry.npmjs.org/@temando%2Ferrors 21
REQUEST emitting complete https://registry.npmjs.org/@temando%2Ferrors
 http --> 404, req: 'GET https://registry.npmjs.org/@temando%2Ferrors', bytes: 0/21
 http <-- 404, user: nfour(<IP_ADDRESS>), req: 'GET /@temando%2ferrors', error: no such package available

[1] % npm config get registry
http://localhost:4873/

I've tried the docker image and currently just using the npm i -g verdaccio global npm install. No dice.
Running arch linux.
[1] % node -v
v10.15.1

@adamelliottsweeting can conform reproduction.

Config file? I don't see the step 1 reflected in the log snapshot you have shared.
REQUEST emitting complete https://registry.npmjs.org/@temando%2Ferrors
 http --> 404, req: 'GET https://registry.npmjs.org/@temando%2Ferrors', bytes: 0/21
 http <-- 404, user: nfour(<IP_ADDRESS>), req: 'GET /@temando%2ferrors', error: no such package available

Seems to work with this config file:
#
# This is the default config file. It allows all users to do anything,
# so don't use it on production systems.
#
# Look here for more config file examples:
# https://github.com/verdaccio/verdaccio/tree/master/conf
#

# path to a directory with all packages
storage: /home/sam/.local/share/verdaccio/storage
# path to a directory with plugins to include
plugins: ./plugins

web:
  # WebUI is enabled as default, if you want disable it, just uncomment this line
  #enable: false
  title: Verdaccio

auth:
  htpasswd:
    file: ./htpasswd
    # Maximum amount of users allowed to register, defaults to "+inf".
    # You can set this to -1 to disable registration.
    #max_users: 1000

# a list of other known repositories we can talk to
uplinks:
  npmjs:
    url: https://registry.npmjs.org/
    headers:
      Authorization: "Bearer <SNIP>"

packages:
  '@*/*':
    # scoped packages
    access: $all
    publish: $authenticated
    proxy: npmjs

  '**':
    # allow all users (including non-authenticated users) to read and
    # publish all packages
    #
    # you can specify usernames/groupnames (depending on your auth plugin)
    # and three keywords: "$all", "$anonymous", "$authenticated"
    access: $all

    # allow all known users to publish packages
    # (anyone can register by default, remember?)
    publish: $authenticated

    # if package is not available locally, proxy requests to 'npmjs' registry
    proxy: npmjs

# You can specify HTTP/1.1 server keep alive timeout in seconds for incomming connections.
# A value of 0 makes the http server behave similarly to Node.js versions prior to 8.0.0, which did not have a keep-alive timeout.
# WORKAROUND: Through given configuration you can workaround following issue https://github.com/verdaccio/verdaccio/issues/301. Set to 0 in case 60 is not enought.
server:
  keepAliveTimeout: 60

# To use `npm audit` uncomment the following section
middlewares:
  audit:
    enabled: true

# log settings
logs:
  - {type: stdout, format: pretty, level: http}
  #- {type: file, path: verdaccio.log, level: info}

For whatever reason, either in docker or global npm module, verdaccio seems to not even look at ~/.npmrc to generate the authorization header.
The weird part is no one else is describing this issue and it is the out-of-the-box behaviour on a system that never installed it before.

I also experienced the same problem but 401 unauthorized.
When I updated to npm 6.9.0, from 6.7.0, this started happening.
Might it be related to the new npm version?

I think you meant npmjs private packages right?  instead, verdaccio private packages ... Am I getting this right?
headers:
      Authorization: "Bearer <SNIP>"

I've resolved the error on my end.
In the docs NGINX is configured as:
location ~ ^/verdaccio/(.*)$ {
    proxy_pass http://<IP_ADDRESS>:4873/$1;
    proxy_set_header Host            $host:$server_port;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header X-Forwarded-Proto $scheme;
}
``
But when combined with SSL, the port is omitted: https://npm.example.com~~:443~~

The authorization headers are messed up due to this.

So this config worked for me:

I can submit a PR on the docs for the full NGINX + SSL working example.

Nice @johndalangin !

@nfour does solution solves your issue?

@juanpicado when it gets merged I guess so.

Ok so, when @johndalangin PR https://github.com/verdaccio/website here, please attach this ticket, then I'll close it. Thanks guys for dive into this.

For future references
https://github.com/verdaccio/docker-examples/tree/master/reverse_proxy/nginx


Issues with stratified_subsampling()

I ran into the following error when using our subsampling funciton on GreekLegalCodeClassification task:
... in train_test_split
raise ValueError(
ValueError: The least populated class in label column has only 1 member, which is too few. The minimum number of groups for any class cannot be less than 2.

@isaac-chung it seems that train_test_split doesn't handle stratificaiton when there is only one sample per class. Any idea on how to solve this?

I personally find it weird to have classes with only sample, maybe we shouldn't handle them? We can filter the dataset and remove rows with only 1 sample, wdyt?
The shuffle will just don't consider the class imbalance and I'm not sure it's good to use it in a function we named stratified_subsampling() 🤔

Good point. It wouldn't be true to the name anymore. I feel that we can put a note in this method to say that we will remove rows with only 1 sample. Use with caution.


Dubbo3+springboot needs to support "consumer+application-level"service discovery

dubbo-spi-extensions
Not friendly to the support of consul .
(1) Non-application-level registration, unable to support application-level registration, error: Value is too long (limit: 512 characters) '). This error is a problem of consul.
(2) Application-level registration with consul. but the latest version of dubbo-spi-extensions does not implement application-level registration
please give consul a way to live.

Would you please help enhance the support of consul? We welcome everyone to participate in sharing.

Would you please help enhance the support of consul? We welcome everyone to participate in sharing.

yes ,I how I can. how to do that?

You can enhance the code in https://github.com/apache/dubbo-spi-extensions/tree/master/dubbo-registry-extensions/dubbo-registry-consul

For the service discovery, you may need to update in https://github.com/apache/dubbo-spi-extensions/blob/master/dubbo-registry-extensions/dubbo-registry-consul/src/main/java/org/apache/dubbo/registry/consul/ConsulServiceDiscovery.java.

For value too long, https://github.com/apache/dubbo-spi-extensions/blob/master/dubbo-registry-extensions/dubbo-registry-consul/src/main/java/org/apache/dubbo/registry/consul/ConsulRegistry.java

You can submit a PR once you finished

OK,I Try it


[feature] Auto scroll like react-beautiful-dnd

Summary

What is the feature?

This is a beautiful library with so many features but there's one part of this library that is really really poorly handled and that is the auto-scroll. Currently, the auto-scroll feels like it barely works. Sometimes it lags when the container is fixed and has 100vh height or there's some margin between items etc(live codesandbox). I'm working on an app that needs a smooth scroll similar to how it works in react-beautiful-dnd. It starts scrolling slowly when you go close to the edge and it speeds up as you go even closer the edge. It feels so natural.
Here's how we want it to work and then how sortablejs currently works
react-beautiful-dnd

sortablejs

Why is having this feature important to you?

I moved from react-beautiful-dnd to sortablejs because it doesn't support a tree-like nested list. But the auto-scroll of sortablejs just isn't something we can deploy to users because it feels so buggy that it feels like it barely works and it makes the whole UX looks so bad. So I'm literally stuck like many users of sortablejs who submitted issues regarding the auto-scroll.

Who else will find having this feature helpful?

Literally everyone. This kind of smooth scroll is so natural that pretty much everyone wants it. I've seen so many issues in this repo about how auto-scroll isn't working, not responding to options etc. The auto-scroll indeed needs improvement.
here's a clean and simple codesandbox to test the scroll.
https://codesandbox.io/s/vanilla-sortablejs-scroll-test-fmch4

#1907 asks for a similar feature


dosnt work with ustream from iss

hi,
i tryed to watch this stream without flash:
http://www.ustream.tv/channel/iss-hdev-payload
but i only got this:
$ youtube-dl --verbose "http://www.ustream.tv/channel/iss-hdev-payload"
[debug] System config: []
[debug] User config: []
[debug] Command-line args: ['--verbose', 'http://www.ustream.tv/channel/iss-hdev-payload']
[debug] Encodings: locale UTF-8, fs UTF-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2<IP_ADDRESS>
[debug] Python version 2.6.6 - Linux-2.6.32-5-686-bigmem-i686-with-debian-6.0.9
[debug] Proxy map: {}
[ustream:channel] iss-hdev-payload: Downloading webpage
[ustream:channel] iss-hdev-payload: Downloading video information (next: 1)
[ustream:channel] iss-hdev-payload: Downloading video information (next: 15)
[ustream:channel] iss-hdev-payload: Downloading video information (next: 28)
[ustream:channel] iss-hdev-payload: Downloading video information (next: 41)
[ustream:channel] iss-hdev-payload: Downloading video information (next: 54)
[ustream:channel] iss-hdev-payload: Downloading video information (next: 66)
[ustream:channel] iss-hdev-payload: Downloading video information (next: 81)
[ustream:channel] iss-hdev-payload: Downloading video information (next: 96)
[ustream:channel] iss-hdev-payload: Downloading video information (next: 108)
[ustream:channel] iss-hdev-payload: Downloading video information (next: 121)
[ustream:channel] iss-hdev-payload: Downloading video information (next: 137)
[ustream:channel] iss-hdev-payload: Downloading video information (next: 149)
[ustream:channel] iss-hdev-payload: Downloading video information (next: 161)
[ustream:channel] iss-hdev-payload: Downloading video information (next: 174)
[ustream:channel] iss-hdev-payload: Downloading video information (next: 186)
[ustream:channel] iss-hdev-payload: Downloading video information (next: 198)
[ustream:channel] iss-hdev-payload: Downloading video information (next: 210)
[ustream:channel] iss-hdev-payload: Downloading video information (next: 224)
[ustream:channel] iss-hdev-payload: Downloading video information (next: 236)
[ustream:channel] iss-hdev-payload: Downloading video information (next: 248)
[ustream:channel] iss-hdev-payload: Downloading video information (next: 260)
[ustream:channel] iss-hdev-payload: Downloading video information (next: 273)
[ustream:channel] iss-hdev-payload: Downloading video information (next: 286)
[download] Downloading playlist: 17074538
[ustream:channel] playlist 17074538: Collected 287 video ids (downloading 287 of them)
[download] Downloading video #1 of 287
[ustream] 52711541: Downloading webpage
[ustream] 52711541: Extracting information
[debug] Invoking downloader on u'http://tcdn.ustream.tv/video/52711541'
ERROR: unable to download video data: HTTP Error 404: Not Found
Traceback (most recent call last):
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 1035, in process_info
    success = dl(filename, info_dict)
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 1011, in dl
    return fd.download(name, info)
  File "/usr/local/bin/youtube-dl/youtube_dl/downloader/common.py", line 291, in download
    return self.real_download(filename, info_dict)
  File "/usr/local/bin/youtube-dl/youtube_dl/downloader/http.py", line 66, in real_download
    data = self.ydl.urlopen(request)
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 1244, in urlopen
    return self._opener.open(req, timeout=self._socket_timeout)
  File "/usr/lib/python2.6/urllib2.py", line 397, in open
    response = meth(req, response)
  File "/usr/lib/python2.6/urllib2.py", line 510, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib/python2.6/urllib2.py", line 435, in error
    return self._call_chain(*args)
  File "/usr/lib/python2.6/urllib2.py", line 369, in _call_chain
    result = func(*args)
  File "/usr/lib/python2.6/urllib2.py", line 518, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError: HTTP Error 404: Not Found

$

please add support for this stream
thanks

youtube-dl should be working for this video in the next release. Please confirm that. If you still encounter problems, feel free to open a new issue.

This has been fixed in youtube-dl 2015.04.26. See our FAQ if you have problems updating.


Include distribution detail in distribution export

Current Behavior
Distribution export to .csv includes columns for "Parter", "Date of Distribution", "Source Inventory", and "Total Items"
Desired Behavior
Distribution export to .csv should include the above as well as "Total Value", "Delivery Method", "State", "Agency Representative"
During export, we should also find the set of products present in the selected distributions, create a column for each product that is present, and populate that column with the "Quantity" of that product present in the distribution

I can pick this up.  Can you please assign me to this @SarahAdelaide ? :-)

Awesome, thanks @akshay-jha! Let me know if you have any questions about the desired behavior.

@akshay-jha I've got a pretty big refactor of the CSV exporting coming through shortly -- depending on what you did, this will likely collide. If you copied the service object approach used previously for Requests, it would be a small fix to resolve it. LMK if you need help with a conflict resolve.

@armahillo I haven't been able to start on this. I am just about to start coding on this, thanks for updating, I will rebase and then make the changes. Will reach out to you for help.

@SarahAdelaide when you say agency, do you mean we should add agency rep ? I am a bit confused between partner name and agency name. Are these two the same?

@SarahAdelaide I am uploading a sample distribution export generated after adding these changes. Let me know in case something needs to be changed.
sample_distribution_export.csv.zip

Hey @akshay-jha I notice that columns BA-BT have no headers. Doesn't look like duplicate data. I'm not sure what those values are?  The columns you've added look right to me, though! This is a much more useful export.

Have fixed the bug for the extra columns and have raised a PR @SarahAdelaide . PFA the updated xlsx
Distribution export.xlsx
file.


502 Bad Gateway Error

I have a vultr server.
I always get 502 Bad Gateway error.
I tried connection in python.
sudo ufw allow 30000 is done.
run command:
./ipv6-proxy-server.sh -s 64 -c 100 -u username -p password -t http -d
output:
IPv6 proxy server started successfully. Backconnect IPv4 is available from <ip>:30000:username:password to <ip>:30099:username:password via http protocol
import requests

proxies = {'http': 'http://username:password@<ip>:30000', 'https': 'http://username:password@<ip>:30000'}

print(requests.get('http://ip-api.com/json/', proxies=proxies).content)

output:

      <title>502 Bad Gateway</title>

502 Bad Gateway

Host Not Found or connection failed

_http://ip-api.com/json_ don't work with IPv6.

Try, for example, ipv6.ip.sb or whatismyv6.com


Update help.ejs

Can I make those changes.

@PasinduDushan Ayye I committed two issues can you approve it.

If you're going to apply this pull request for the bits competition task I highly suggest that you find more things in the repo to fix and contribute.


1207 Route to App when Logged In Fix

The root cause of this issue was userFetchedMiddleware failing in the context of our SSR express setup, and causing the check for a currentUser to fail in that context.  That wasn't always the case, and not sure what of recent changes caused this, but the Mixpanel library isn't tolerant of not having a document object and hasn't been. It was failing silently before, but Mixpanel was still succeeding at identify and tracking.
This PR moves mixpanel out of redux and relies instead on the implicit window global scope of the mixpanel object from mixpanel-browser. Additionally, I eliminated the userFetchedMiddleware and moved the Mixpanel user identification steps into AuthLayoutRouter, making things a bit more clear and explicit. This should also help make it things a little more clear where to go once we get to GDPR stuff and wish to make tracking optional per-user.
Currently deployed to Staging for QA.

Just did an edit in the description which made things a bit more clear. Also note that this PR adds a new env var HYLO_COOKIE_NAME and I have set the appropriate values on both staging and in production, in anticipation of this release.  Added this to the .env.example now as well.


check-types command doesn't run on any folders

The following scripts are available in package.json and are run by bitbucket pipelines:
    "check-types": "nx affected -t check-types",     "check-types:all": "nx run-many -t check-types",
The inbuilt Nx library generator and our custom service generator do not create targets in project.json for this, so it never actually runs across any code.

Adding a check-types target to our custom generator should be pretty straightforward but I'm not sure if we can get the inbuildt Nx lib generator to add it easily.

Tracking on internal board


Introduce noDebug flag to DebugSessionOptions

Code pointer:
https://github.com/microsoft/vscode/blob/e9426456b63862ac76252d49b7354937e7394988/src/vs/workbench/api/browser/mainThreadDebugService.ts#L232
startDebugging api makes an assumption that noDebug is false
The problem is shown when you want to Run Without Debugging using js-debug. The breakpoints are still hit.
Not sure who authored this code originally. Assigning all 3 of us, I can also look into it.
Assigning to June so we look into this if possible.

@isidorn IIRC you've introduced the VS Code API DebugSessionOptions which only surfaces a parentSession and a consoleMode. I understand that it would make sense to have a noDebug property on DebugSessionOptions because this makes it possible to use startDebugging both for the "debug" and the "run without debugging" cases.
So in June we should introduce the noDebug property on DebugSessionOptions.
But the way how DebugSessionOptions is converted into the internal IDebugSessionOptions is questionable but I do not really understand why the current hardcoded "false" results in the problem we are seeing with js-debug.
Are there three possible semantics for "noDebug" in DebugSessionOptions:

false: start debugging
true: run without debuging
undefined: the decision is made somewhere else

Good point, we can introduce that to the options.
There are just two ways how noDebug is interpretted:
If it is passed and true we set that noDebug: true otherwise we do not set the noDebug attribute in the launch configuration.
The hardcoded false results in the problem becuase:

User starts debugging with noDebug: true
VS Code sends to this js-debug
JS-debug wants to create a child session and calls the startDebugging api
The startDebugging api set the noDebug to false and thus the new session does not have a noDebug field set.

So the smallest fix for js-debug would be to pass a noDebug received for the parent session via startDebugging to a child session, correct?

@weinand yes, the js-debug could pass a noDebug flag to the child session configuration.
Makes sense for the description of the settings.
Before we introduce this option though let's see what @connor4312 thinks

As agreed I have surfaced the noDebug property on the DebugSessionOptions, thus adding API proposal so I bring this up in next weeks api sync fyi @jrieken
I have also changed the behavior of noDebug such that when undefined the behvaior of the parent session is inhereted.
@connor4312 since I will take this issue through the API process maybe we create a seperate one for js-debug and we unassign you from this one?

Works for me

For reference here's the js-debug issue https://github.com/microsoft/vscode-js-debug/issues/523

@isidorn the comment for noDebug does not yet explain (the new behavior) when noDebug is missing.

@weinand thanks, tackled this via 9bebaefc7b

We have done what we planned for this milestone.
Thus moving this out to on-deck and changing to api-finalisation.
Will create a test plan item to cover this.

We plan to finalize this API this August milestone. Just in case there is more feedback before we finalize it.
fyi @connor4312

I've adopted this in js-debug for setting noDebug in child sessions. Work well, no complaints :)

I have finalized this and created this test plan item to cover the finalisation
https://github.com/microsoft/vscode/issues/104986
@connor4312 @weinand please assign yourself if you feel like testing this. Only one tester is need, since this is just finalisation


added the logo to navbar.tsx

Fixes: #21
added the logo to navbar .

Decrease the logo size.

done @Swarnendu0123

Modify your old screenshot.

When I asked for decreasing the size, I mean you should copy the icon in the assets folder then crop the upper and the lower white portion and attach the asset logo. I does Not mean to decrease the height in HTML.

When I asked for decreasing the size, I mean you should copy the icon in the assets folder then crop and remove the upper and the lower white portion and attach the asset logo not directly from the public folder. I does Not mean to decrease the height in HTML.

Okay sir

@Swarnendu0123 done.. please check if any further changes are to be made or not


Deduplicate fs error handling

See: https://github.com/resin-io-modules/etcher-image-write/pull/96#discussion_r112429753
Signed-off-by: Juan Cruz Viotti<EMAIL_ADDRESS>

Requested a review from Jonas, as this is advanced NodeJS code I can't mentally parse yet ;-)

You might want to install Esprima (http://esprima.org/) on yourself :P

eslint is making the CI tests fail.
I tried installing Esprima on myself, but my brain's JS interpreter was too old to handle it :-(


[ci] Add PoliCheckExclusions.xml

Adds an exclusions file for policheck to allow it to ignore the sources
in the third_party folder that we do not own.

This cuts the issue set down dramatically (from PoliCheck failed with 2617 issues found to PoliCheck failed with 112 issues found), but there are still some components we will want to try to address.

The new versions of the tools have uncovered some more issues, but we've gone from 2617 down to 169 in the latest run and now have a better starting point to resolve the rest. This should be ready to go.


Default hostname on Mac

> [13:33PM] onyx-example$ PORT=5001 REDIS_URL=redis://localhost:6379 crystal app.cr
 INFO [13:33:13.341 #95829] ⬛ Onyx::HTTP::Server is listening at http://[::1]:5001

> [13:34PM] onyx-example$ wscat --connect ws://localhost:5001?name=Jeremy
error: connect ECONNREFUSED <IP_ADDRESS>:5001
> [13:34PM] onyx-example$ wscat --connect ws://<IP_ADDRESS>:5001?name=Jeremy
error: connect ECONNREFUSED <IP_ADDRESS>:5001
> [13:34PM] onyx-example$ wscat --connect ws://<IP_ADDRESS>:5001?name=Jeremy
error: connect ECONNREFUSED <IP_ADDRESS>:5001
> [13:35PM] onyx-example$ wscat --connect ws://[::1]:5001?name=Jeremy
connected (press CTRL+C to quit)

It binds to "[::1]" on MacOS. "<IP_ADDRESS>" works fine though. Not sure if I shoudl change the default hostname to "<IP_ADDRESS>".
"<IP_ADDRESS>" works as well.

Closed by 3a98a1a15557c9fe671e0c605146298db168a5cf.


MB-3243 Integrate Orders document viewer

Description
This PR adds the ability for a TOO to view orders documents that the user uploaded.
Reviewer Notes
Steps to test:

Run the setup commands in the section below
Visit http://officelocal:3000/devlocal-auth/login
Click the Login button next to<EMAIL_ADDRESS>(PPM office)
Click on the first MoveOrderID in the list
Change the url from http://officelocal:3000/moves/[move_id]/details to http://officelocal:3000/moves/[move_id]/orders

Expected Result: you should see a test.pdf file
By default, the seed data only uploads PDFs. To test other image types, follow these steps:

Sign in to http://milmovelocal:3000 as a service member
If you haven't created a move yet, go through onboarding and create one. When it's time to upload your orders documents, choose a PNG, JPG, or GIF. Please make sure they don't contain any PII. If you've already created a move, you can edit it and upload additional orders documents.
Visit http://officelocal:3000/devlocal-auth/login
Click the Login button next to<EMAIL_ADDRESS>(PPM office)
Click on the Move that you created as a service member.
Change the url from http://officelocal:3000/moves/[move_id]/details to http://officelocal:3000/moves/[move_id]/orders

Setup
Add any steps or code to run in this section to help others prepare to run your code:
make db_dev_e2e_populate
make server_run
make client_run (in a separate terminal tab)

Code Review Verification Steps

[ ] Code follows the guidelines for Logging
[ ] The requirements listed in
Querying the Database Safely
have been satisfied.
Any new migrations/schema changes:

[ ] Follow our guidelines for zero-downtime deploys (see Zero-Downtime Deploys)
[ ] Have been communicated to #g-database
[ ] Secure migrations have been tested following the instructions in our docs

[ ] There are no aXe warnings for UI.
[ ] This works in Supported Browsers and their phone views (Chrome, Firefox, IE, Edge).
[ ] Tested in the Experimental environment (for changes to containers, app startup, or connection to data stores)
[ ] User facing changes have been reviewed by design.
[ ] Request review from a member of a different team.
[ ] Have the Jira acceptance criteria been met for this change?

References

Jira story for this change

Screenshots

Messages

:book:
:link: MB-3243

  Generated by :no_entry_sign: dangerJS against 516c4059df9a06f3f2c30280da23e1448ff97fd5

Thanks for the bug report. I will take a look.

I wasn't able to fix the uploads for all orders in the e2ebasic file. It wasn't easily clear where the UserUploader assertion is missing. I'll open a separate story for defaulting to creating real uploads for all generated orders.
@duncan-truss Can you show me an example of the undefined key in the payload?

I wasn't able to fix the uploads for all orders in the e2ebasic file. It wasn't easily clear where the UserUploader assertion is missing. I'll open a separate story for defaulting to creating real uploads for all generated orders.
@duncan-truss Can you show me an example of the undefined key in the payload?

@monfresh The undefined key you can find by clicking on the react-query devtools flower/pinwheel icon in the lower left on the orders document viewer page.  You should see the get document query and a data explorer on the right where the response json is normalized to the model name and then the id of the entity.

Thanks. I see it now. documents is an array, so I think the undefined key is superfluous. I'm not sure where it's coming from. I'll open a story to look into it.


[Tests] More time for data aug model to converge

Like https://github.com/NVIDIA/DIGITS/pull/1074, this is trying to get rid of all the meaningless TravisCI errors.

Ran into this again. Merging.


suggestions  increase time screening range

这个 PR 实现什么功能/修复什么问题:
优化建议增加时间筛选范围
1.在时间范围内查询未使用的资源，对于存在解绑的操作，通过查询对应的日志来确定最近的使用时间
2.基于监控的优化建议，增加新的reducer，当有足够多的points时，再进行其他逻辑
是否需要 backport 到之前的 release 分支:

release/3.2

/cc @zexi
/cc @yousong
/area monitor

Codecov Report

Merging #6472 into master will increase coverage by 0.00%.
The diff coverage is 0.00%.

@@           Coverage Diff           @@
##           master    #6472   +/-   ##
=======================================
  Coverage    7.18%    7.19%
=======================================
  Files         646      647    +1
  Lines      108626   108636   +10
=======================================
+ Hits         7808     7819   +11
+ Misses     100219   100217    -2
- Partials      599      600    +1

Flag
Coverage Δ

#aFlag
7.19% <0.00%> (+<0.01%)
:arrow_up:

Impacted Files
Coverage Δ

pkg/monitor/alerting/conditions/query.go
0.64% <0.00%> (ø)

pkg/monitor/alerting/conditions/reducer.go
95.87% <0.00%> (-2.02%)
:arrow_down:

.../monitor/alerting/conditions/suggestrulereducer.go
0.00% <0.00%> (ø)

pkg/cloudcommon/cronman/cronman.go
53.95% <0.00%> (+5.11%)
:arrow_up:

Continue to review full report at Codecov.

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

/hold

/hold cancel


"AttributeError: 'NoneType' object has no attribute 'publish'" in crochet demo

Crochet demo (https://github.com/tavendo/AutobahnPython/blob/master/examples/twisted/wamp/app/crochet/example1/) is broken. You can easily fix the first error by removing the obsolete stand_alone parameter, but the second error kinda baffles me :
INFO:werkzeug: * Running on http://<IP_ADDRESS>:8000/
   INFO:twisted:Starting factory <autobahn.twisted.websocket.WampWebSocketClientFactory instance at 0x7f968917ab48>
   INFO:twisted:Stopping factory <autobahn.twisted.websocket.WampWebSocketClientFactory instance at 0x7f968917ab48>
   ERROR:__main__:Exception on / [GET]
   Traceback (most recent call last):
     File "/home/sam/.local/share/virtualenvs/test/local/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app
       response = self.full_dispatch_request()
     File "/home/sam/.local/share/virtualenvs/test/local/lib/python2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request
       rv = self.handle_user_exception(e)
     File "/home/sam/.local/share/virtualenvs/test/local/lib/python2.7/site-packages/flask/app.py", line 1381, in handle_user_exception
       reraise(exc_type, exc_value, tb)
     File "/home/sam/.local/share/virtualenvs/test/local/lib/python2.7/site-packages/flask/app.py", line 1475, in full_dispatch_request
       rv = self.dispatch_request()
     File "/home/sam/.local/share/virtualenvs/test/local/lib/python2.7/site-packages/flask/app.py", line 1461, in dispatch_request
       return self.view_functions[rule.endpoint](**req.view_args)
     File "server.py", line 49, in index
       publish('com.example.on_visit', app._visits, msg = "hello from flask")
     File "/home/sam/.local/share/virtualenvs/test/local/lib/python2.7/site-packages/crochet/_eventloop.py", line 461, in wrapper
       return eventual_result.wait(timeout)
     File "/home/sam/.local/share/virtualenvs/test/local/lib/python2.7/site-packages/crochet/_eventloop.py", line 231, in wait
       result.raiseException()
     File "<string>", line 2, in raiseException
   AttributeError: 'NoneType' object has no attribute 'publish'

Since publish() is a function, I'm guessing it is a deep internal problem and crochet is propably making some dark magic with the module import to which it expects the publish function to be attached.
Any idea ?

with some smallish adjusts, this works for me now .. see screenshot here https://github.com/tavendo/AutobahnPython/tree/master/examples/twisted/wamp/app/crochet/example1


Separate plugin css override from main css.

I have an issue with select2 4.0 and a custom css import.
CSS is still overrided by AdminLTE.css that I don't want to be.
Please separate AdminLTE core css from plugin to let user choice of which file to import.
I propose:

AdminLTE.css -> All css with plugin (keep BC)
AdminLTE.core.css -> Only AdminLTE related CSS.
AdminLTE.plugins.select2.css -> Select2 CSS
AdminLTE.plugins.another_one.css etc...

Related to #589 and #661.

For this specific reason and a few others we use LESS. You can simply comment out @import "select2.less"; from AdminLTE.less and recompile. This goes to any other component or plugin in AdminLTE. You can also compile the LESS files in the way you mentioned.
Thanks for the suggestion.

Not everybody are using less. Have same logic for css would be great too.

You can simply comment out @import "select2.less"; from AdminLTE.less and recompile.

Well, you're telling me to modify vendor files imported from bower. Sorry, but really, no. :-)

have an issue with select2 4.0 and a custom css import

Could you describe your issue please?

Simple: I load an external css thee for select2 but it's overridden by AdminLTE css so I have some weird rendering.
That's why I suggest plugin separation from core for css.

@almasaeed2010 why closing this issue?

please read https://github.com/almasaeed2010/AdminLTE/issues/1086

Could you please re-open? Still relevant.

Hello @Soullivaneuh,
We apologize for the delay. After looking into this further, we decided that we won't add this suggestion. The reason is that creating a css file for each plugin is a task that we don't want to take over ourselves nor do we want our users to add more than necessary css files. That is, take select2 for example, it is had its own css files that have to be loaded before adminlte's css files. So now we already have 2 files to load. Adding more files to serve the same purpose is not appealing. For further explanation about page load with external files, please read the following article https://varvy.com/pagespeed/combine-external-css.html
Finally, this is the reason for us to use preprocessing tools such as LESS. Unfortunately, some technologies have to be learned by users when using certain frameworks such as AdminLTE to reach the utmost customizability.
We appreciate your suggestion and apologize for any inconvenience!

Please reconsider this issue. In some case, we don't want the overridden css of a plugin because we don't use it or we use a different version of it. This is my case as I said on the beginning:

That is, take select2 for example, it is had its own css files that have to be loaded before adminlte's css files.

This change nothing, your css override, even if it's loaded after, brake the select 2 4.0 rendering.

Adding more files to serve the same purpose is not appealing. For further explanation about page load with external files, please read the following article https://varvy.com/pagespeed/combine-external-css.html

Having only one CSS file to increase load speed is not a right argument IMHO.
All developer who take a little care about page load will use tools to combine all vendor file like grunt, gulp or even assetic for Symfony.

Finally, this is the reason for us to use preprocessing tools such as LESS. Unfortunately, some technologies have to be learned by users when using certain frameworks such as AdminLTE to reach the utmost customizability.

Maybe, but this is not always possible to work like this. For example, in SonataAdminBundle which uses your theme, we directly dispatch a ready to use UI with vendor css in here. If we want to remove the select2 css override, we simply can't.

Having only one CSS file to increase load speed is not a right argument IMHO.

It's not right because indeed, it's an application-level concern, not a library-level concern : if you have 10 libraries, you still want to have only one file, so having 10 files combined by library authors does not help that much. Also, with HTTP/2 concatenation will become questionable, so you should probably leave this decision to the application developer.
To go further, having to learn less to use your lib might not seem a big deal, and while it is quite a reasonable decision for projects, it makes using your library as the dependency for another library (as opposed to a project) quite a bigger deal, because it means that the dependent library now also depends on less. In our case, the dependency is only if you want to "reach the utmost customizability", you say, which makes it sound like a feature, when it actually is to fix a bug. Imposing less on our user's toolchain so that they can get a bugfix does not seem very sensible.
Finally, note that if you still want to provide a big file for BC's sake, nothing prevents you from doing it, and IMO it would be great to provide both. Please consider reopening this issue, I think this small bug shows a big usability issue in this project, which would really gain a lot by fixing it.
@ju1ius, would you like to chime in? I think maybe you might know how to solve this properly.

At least, if you want to keep this logic on less only, you should split this file: https://github.com/almasaeed2010/AdminLTE/blob/master/build/less/AdminLTE.less
Because ATM, if I just want to remove the select2 plugin css, I have to copy paste the whole file for that.
At least, having a AdminLTE.less and a AdminLTE-plugins.less would be a minimum, but the logic I said at the beginning would be better IMHO.

Currently, we are considering a potential fix for this issue. Please review the issue-668 branch. Let me know if you have any concerns.
Thanks!

@almasaeed2010 Done in https://github.com/almasaeed2010/AdminLTE/pull/1101


Parser - ModeRequest "-" sign Parsing

You must pass the modeArgument to the Executor, even if it's a "-" sign

resloved


Add support for HDFS module

HDFS is a common part of people's "Big Data" workflows. Typically, their data lives there so that's where their work starts from.
In Flintrock's case, people are more likely to want to use HDFS as a temporary store for data pulled in from other places like S3 to speed up access to it by Spark. spark-ec2 directly supports this use case with both ephemeral and permanent HDFS installations provided on launched clusters.
Flintrock should offer something similar.

The comments from shivaram were to follow the yarn code path but only set up hdfs, basically doing the steps in  https://github.com/amplab/spark-ec2/blob/branch-1.5/ephemeral-hdfs/init.sh#L32 and for configs just grab whats in https://github.com/amplab/spark-ec2/tree/branch-1.5/templates/root/ephemeral-hdfs/conf and ignore the yarn, mapred ones


Feature Request: Add utility function Promise.first()

I'm frequently in a position where I want to say "Try this. If that doesn't work, try this. If that doesn't work, try this". It'd be nice to be able to write:
Promise.first([
    method1,
    method2,
    method3
], {concurrency:1})

It appears that, currently, you can get bluebird to have this desired behavior, but it's not very clean. I might just be missing a useful pre-existing pattern, though.

Note that methods that take the concurrency parameter are not ordered so in your case (if it behaves like map and filter) you might get method2() or method3 called first.
Moreover, promises represent an eventual value not an operation - once you get a promise you've already started so in your example they all run concurrently anyway.

By the way here it is as a promise returning function
function chainPromises(arrayOfFunctions){
    return Promise.resolve().then(function loop(){
        if(arrayOfFunctions.length === 0) throw new Promise.OperationalError("None good");
        return arrayOfFunctions.shift()().catch(loop);
    });
}

Or as a coroutine:
var chainFunctions = Promise.coroutine(function*(){
    for(var i = 0; i < arrayOfFunctions.length; i++){
         try{
                var res = yield arrayOfFunctions.shift()();
                return res; // or do more processing
         } catch(e){
                // suppress catch, let iteration continue
         }
    }
    throw new Promise.OperationalError("...");
}

Yes, serial, ordered behavior would be desired.
It would still represent an eventual value. That value would be "the value of the first eventual value". I spoke of operations because my code is often structured as operations returning eventual values (method1(), method2(), and method3() would all be functions returning eventual values)
Your code examples demonstrate the behavior I had in mind and, in practice, your chainPromises functions is effectively what I do. However, it's not nearly as clean nor concise as Promise.first(arrayOfPromises). I made the suggestion because I feel this is a common use-case that I run into and felt that such a utility function would be useful for me and for others.

Just to be clear, if you have an array of promises all the API calls have
already been made, all the operations have executed and you're just
looking for the first that is not rejected.
On Wed, Feb 4, 2015 at 3:45 PM, Tim Huff<EMAIL_ADDRESS>wrote:

Yes, serial, ordered behavior would be desired.
It would still represent an eventual value. That value would be "the value
of the first eventual value". I spoke of operations because my code is
often structured as operations returning eventual values (method1(),
method2(), and method3() would all be functions returning eventual values)
Your code examples demonstrate the behavior I had in mind and, in
practice, your chainPromises functions is effectively what I do. However,
it's not nearly as clean nor concise as Promise.first(arrayOfPromises). I
made the suggestion because I feel this is a common use-case that I run
into and felt that such a utility function would be useful for me and for
others.
—
Reply to this email directly or view it on GitHub
https://github.com/petkaantonov/bluebird/issues/480#issuecomment-72856075
.

I'm sorry. You're right. It's early in the morning here. It would be Promise.first(arrayOfFunctions), not Promise.first(arrayOfPromises). I made similar mistakes throughout what I was saying.

I also feel that a proper implementation of this hypothetical utility function would make use of Promise. AggregateError and not simply an OperationalError with "None good." (but I understand that your example wasn't intended to be rigorous).

I've also updated my original post to indicate that I'm talking about handling an array of functions and not an array of promises. Excuse my clumsiness, there.

Considering how badly I botched this issue, I'm going to close it and open a new, more carefully-worded, one so that we can have a proper discussion on the matter.

Sure, it could be great if you can provide:

Motivation
Common use cases
Why this can't be solved cleanly with current functions and what the current solution you have is.

I really doubt this is a common enough need that it should be implemented in the core.
If you need it once or twice, use
Promise.reduce([
    method1,
    method2,
    method3
], function(result, fn) {
   return result ? result : fn().catch(function(){ return null; });
}, null);

If you use it more than once or twice, write a helper function.

@petkaantonov Thank you! I agree. Your usage of reduce makes the solution succinct and readable enough. While I feel that it's a fairly common use-case, I don't think it's nearly common enough to necessitate an addition to the API. I'm not going to bother creating a new issue.

An issue with your solution, though, is that it completely ignores any errors or exceptions coming out of the functions. Also, if the resolved result is, itself, null, then that would be ignored.
I ended up just making a helper function for this, written in coffeescript. In case anyone else finds this useful. Considering how nuanced this issue is and the fact that it is a use case that comes up from time to time, I'm going to go ahead and create that issue after all.
Promise.first = (args..., methods=[], thisArg)->
	if methods.length == 0
		return Promise.resolve()
	errors = new Promise.AggregateError
	firstResolvedMethod = (n=0)->
		methods[n].apply thisArg, args
		.error (error)->
			errors.push error
			if n < methods.length-1
				return firstResolvedMethod n+1
			else
				return Promise.reject errors
	return firstResolvedMethod()


docs(contributors): update Contributors section considering latest releases

This PR updates Contributors section, adding contributions for the contributors of latest few releases.

I double approved so there's no doubt 😂

/rtm
@smoya thanks mate for taking care to keep the list up to date 🙏🏼

Forget about the last comment saying it was released in version 2.5.0-next-major-spec.1. I made a mistake and it created this version but it should actually be 3.0.0-next-major-spec.1. There's a notice in the release. Apologies for the noise.

Recent comments about the release from the bot were added by mistake. More details in https://github.com/asyncapi/spec/issues/899


Streamline Configuration Loading in Conversation Config Module

This PR introduces several minor yet impactful changes to improve the robustness and clarity of the Conversation Configuration Module:

Improved Error Handling:

Catches specific exceptions like FileNotFoundError and yaml.YAMLError for clearer error messages.
Replaced print statements with logging for better output control.

Streamlined Configuration Loading:

Refactored the get_conversation_config_path method to reduce redundancy by using a loop to check for the configuration file in multiple locations.

Simplified Deep Copy Logic:

Enhanced clarity in the __init__ method by directly updating self.config_conversation with the loaded configuration, eliminating the need for deep copying.

These changes enhance the overall maintainability and error reporting of the module, providing a clearer understanding of issues during configuration loading.
Code Snippet
# Error Handling
except FileNotFoundError as e:
    logging.error(f"Error locating {config_file}: {str(e)}")
    return None
except yaml.YAMLError as e:
    logging.error(f"YAML Error: {str(e)}")
    return None

# Configuration Loading
for path in [base_path, os.path.dirname(base_path), os.getcwd()]:
    config_path = os.path.join(path, config_file)
    if os.path.exists(config_path):
        return config_path

# Deep Copy Logic
self.config_conversation.update(config_conversation)

hey @souzatharsis please review this

Will do, apologies I was out this week.
http://linkedin.com/in/tharsissouza
On Thu, Oct 24, 2024 at 4:56 PM Mayur Kawale @.***>
wrote:

hey @souzatharsis https://github.com/souzatharsis please review this
—
Reply to this email directly, view it on GitHub
https://github.com/souzatharsis/podcastfy/pull/95#issuecomment-2436228258,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADTMY3LJM72UHAQ4ACU55SDZ5FGHFAVCNFSM6AAAAABQK5GMFGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMZWGIZDQMRVHA
.
You are receiving this because you were mentioned.Message ID:
@.***>

automated tests indicate api keys are not found. please check above logs.


[CODEOWNERS] Update Cosmos Service Owners

Updating the contacts for Cosmos, by request.

/check-enforcer override


use gnutls

The latest version of TLS/openssl is not working properly with freetds.  See https://github.com/FreeTDS/freetds/issues/336 and https://github.com/FreeTDS/freetds/issues/299
This fix solves https://github.com/rails-sqlserver/heroku-buildpack-freetds/issues/19.  I can now run freetds and tinytds on heroku-22!
FYI @bf4

@bf4 yes, I have it up and running on one of my heroku sites!  It has been quite a relief to get it working.


Gists and Item titles

Adds a new gh gists ... command that lists all your gists and selecting one opens it in your browser.
Improves the result titles

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