quote string in error message

First of all: you did a great job with go-udp-testing, it really improved our test scenario's.
situation
Yesterday I ran in a situation where I got failure messages from an UDP test. But the visual output from the test runner the same:
--- FAIL: TestLogentriesBackend-6 (0.00s)
	udp.go:70: At: /home/pjvds/dev/go/src/github.com/pjvds/tidy/logentries/backend_test.go:30
	udp.go:79: Expected: 2bfbea1e-10c3-4419-bdad-7e6435882e1f DEBUG (module): log message
	udp.go:80: But got: 2bfbea1e-10c3-4419-bdad-7e6435882e1f DEBUG (module): log message

After some debugging I found that the actual string had leading white spaces.
proposal
This pull request changes the expected and got error message format by surrounding the string with quotes ("). This was leading white spaces can be spotted easily.
As an example, here is what the failing test looks like after the change:
--- FAIL: TestLogentriesBackend-6 (0.00s)
	udp.go:70: At: /home/pjvds/dev/go/src/github.com/pjvds/tidy/logentries/backend_test.go:30
	udp.go:79: Expected: "2bfbea1e-10c3-4419-bdad-7e6435882e1f DEBUG (module): log message"
	udp.go:80: But got: "2bfbea1e-10c3-4419-bdad-7e6435882e1f DEBUG (module): log message   "

I think the better approach is to use the "%#v" verb, which prints a Go-syntax representation of the value. This will not only include the surrounding quotes, but will also escape quotes and unprintable characters in the string. Thanks for the suggestion! I made the commit to use the "%#v" verb, so I'm closing this one.

Great one, even better. :+1:


Error installing EasyAdminBundle Cannot load resource "@EasyAdminBundle/Controller/".

Hi, i'm installing this bundle but i get a error, the error is:
Cannot load resource "@EasyAdminBundle/Controller/". Make sure the "EasyAdminBundle/Controller/" bundle is correctly registered and loaded in the application kernel class. If the bundle is registered, make sure the bundle path "@EasyAdminBundle/Controller/" is not empty.
I'm trying to install this bundle without composer because my internt have proxy, and i can't install this bundle with composer, all settings work great but routing not. What i can do for solve this?.

Hi, This repo is not maintained, I invite you to check the official repo https://github.com/javiereguiluz/EasyAdminBundle

OK man, thanks a lot.


Minor readme fixes

The README hardly had any changes to be made. The App store description is more or less sufficient and doesn't need to be elaborated upon further. Still a couple of grammatical fixes.

Removed it!

@all-contributors add @rarchitgupta for docs


【feature】 combo picker add snippet preview

Expected behavior
when search in combo picker,  we can preview snippet。
Actual behavior
currently cannot preview in combo picker
Steps to reproduce the behavior
Operating system

That's an interesting idea. The hardest part is going to be to find a way to gracefully integrate the preview in the UI.

Thank you for your prompt reply!
currently use beeftext to save my code snippet， so it's necessary for me to have such a feature, thx.


[W6.4h][W11-B1] Ng Xin Ler

LO - Interfaces

@sherlynng
Some comments added. Please ack & close the PR after reading comments.


Automated Package Upgrade

:tada: This PR is included in version 12.0.11 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Can I create my own Projection on a custom component?

I read your articles on C++ with WinRT on Modern.
Where you also mentioned without your "modern.exe" compiler, you can't project into C++ (cppwinrt).
So How can I project a library I wrote as WinRT component into consumable in C++ language?
Is your compiler is the only way? or WinMD automatically projects them?
Any resources if already there would be fine too!
I searched and I couldn't find anything except your articles

You need the cppwinrt.exe compiler (previously called modern.exe) in order to do this. We will make this available in a future update.

Will it available in the Creators Update SDK?

I don't have any specifics on when C++/WinRT will be available through the Windows SDK, but we will publish an update of C++/WinRT for the Windows 10 Creators Update.

Thanks.
Looking forward to it.

Waiting for modern.exe to be published publicly.


Small mistake in Turbo Streams introduction section of handbook

In the first code example of the Turbo Streams introduction I'm pretty sure the content in the <template> tag is wrong? This is what's there right now:
<turbo-stream action="append" target="messages">
  <template>

My new message!

  </template>
</turbo-stream>

I'd expect there to be a container element like a div with an id of 'messages' to append into.

@tvanderpol Not it isn't because the turbo-stream tag is telling to which element Turbo should append the content of the template tag.


HTML5 export weird duplication of the texture.

I didn't find similar issues
Godot version:
3.1
OS/device including version:
Ubuntu 18.04. GT 1030
Issue description:
When I export my scene with HTML5 export the texture looks duplicated in weird way. (The scene has only one texture)
Steps to reproduce:
Export the scene with HTML5 export and open in browser.
Minimal reproduction project:
https://www.dropbox.com/s/cnvi28wrg9tygcv/3D intro.zip?dl=0

A screenshot might help with determining the cause of the issue.
Here is how a 3.1-stable export looks in Firefox:

And here is the same version running natively on linux:

Note that the texture is specified as to be stored in Video Ram, potentially WebGL has limitations on the size of textures which can be uploaded to it. Maybe try importing it in some other mode, or decreasing the size of the texture.

Thank you. Decreasing size of the texture helped but other mods didn't help.

Can anyone still reproduce this bug in Godot 3.2.3 rc3 or any later release?
If yes, please ensure that an up-to-date Minimal Reproduction Project (MRP) is included in this report (a MRP is a zipped Godot project with the minimal elements necessary to reliably trigger the bug). You can upload ZIP files in an issue comment with a drag and drop.

No answer, so closing. Please comment if you can still reproduce it, and make sure that an up-to-date reproduction project is included.


Fix delayed game switch

The previous check was unreliable, it's still possible we were called from user code when it's disabled (launch from SD will disable user code to flash before calling this).
Replace the check with a bool set around calling tick, which should always be accurate. (Unless someone attempts to launch from render...)
This reliably crashed my blithub downloader, but doesn't seem to break the launcher even though it should...

Thank you!


Integrate CKAN datapusher service into dev stack

The CKAN datastore extension works together with the datapusher service in order to automatically extract relevant data from existing datasets.
Integrate this into the dev stack by adapting the installation instructions into a container-based deployment method.

@gubuntu as per the datapusher definition, it extracts data from CSV-like files and stores them into CKAN datastore which is a second database enabled with CKAN, this is irrelevant to the EMC as it's a metadata clearinghouse and it doesn't store any files, thus closing this issue, if you think otherwise please reopen and tag me in a comment,

agreed
(but it looks like something we could have used in WRO?)

Per @Mohab25's comment:

it extracts data from CSV-like files and stores them into CKAN datastore which is a second database enabled with CKAN, this is irrelevant to the EMC as it's a metadata clearinghouse and it doesn't store any files


Wrong Windows Explorer Icons for VSCode

VSCode Version:1.42.1
OS Version:Windows 10

As you can see in the screenshots, I can't see the right icons for .cpp files, it shows the default ones. It works for .json files tho.
Does this issue occur when all extensions are disabled?: Yes/No Yes

Note that my system language is set to Norwegian. That's why you see "cpp-fil".

Alright so apparently the issue was my windows display language.
After changing the language of the system to English all the icons are showing now after opening them.
Maybe this could be a bug submission as well?

@bpasero this appears to be a display language bug

VSCode is built on top of a large number of components that are not maintained by the VSCode team directly. This includes:

Electron as the cross platform UI framework
node.js for most integration into the OS
Chromium as runtime and rendering engine (HTML, CSS, JS)
and after all, the operating system VSCode is running on

Reading this issue, it seems to originate not from VSCode itself but rather one of these upstream components. As such, in order to resolve it, it would need to get fixed in the upstream component. I will go ahead and close this issue and kindly ask to report this issue to the upstream component if possible:

for UI, OS integration: https://github.com/electron/electron
for Rendering: https://bugs.chromium.org/p/chromium/issues/list
for file IO: https://github.com/nodejs/node

Thanks for understanding.


Support scope profile

Scope profile is one of the OpenID scopes.

closing this as this will be taken care of in #26


Add Service Bus Administration Client API

Today we expose a ServiceBus API for registering the ServiceBusClient in DI. But not one for registering the ServiceBusAdministrationClient. We should add an extension method for registering the admin client as well.
namespace Microsoft.Extensions.Hosting;

public static class AspireServiceBusExtensions
{
+    public static void AddAzureServiceBusAdministrationClient(
+        this IHostApplicationBuilder builder,
+        string connectionName,
+        Action<AzureMessagingServiceBusSettings>? configureSettings = null,
+        Action<IAzureClientBuilder<ServiceBusAdministrationClient, ServiceBusAdministrationClientOptions>>? configureClientBuilder = null)

Do we still want to do this? It's required for eShop.
cc @BrennanConroy

In my opinion, this isn't a "must have". Users can easily do this themselves, like we do in eshop:
https://github.com/Azure-Samples/eShopOnAzure/blob/75105b61c3145e3752ac402349c5927b62437ee9/src/EventBusServiceBus/ServiceBusDependencyInjectionExtensions.cs#L34-L49

This didn't make it into 8.0 i guess?

No, this was deprioritized.


Can't insert COUNT(id) in Field

In last version i cant insert COUNT(id), its translate to "COUNT(id)" and get errror (field not found)
In before version - all ok.

@aangelisc I think this is in the query builder. I'm not sure which input they're referring to, but it seems like they're trying to add COUNT(id) as a custom value (perhaps in the column selection). By default, typing a custom column in like this will append it to the SQL as a quoted string ( "COUNT(id)" )
A possible fix for this (and other functions) is to remove the quotes when the string contains parenthesis characters ( )

This issue should be fixed in v4. When a column contains a space or parenthesis, we skip the string escape so that it's inserted directly into the query. Open another issue if the problem persists. Thanks!


Possibility to use external tracking to dispatch events

I added the possibility to use this code with external tracking.
I assumed a project on production, and that project uses this package in many code locations.
And one task was to migrate trackings to GTM.
To reutilize all implementation of this plugin on code, I only created an adjustments to not remove and continue using all code, now using GTM trackings on the dataLayer.
I am sharing changes here.

@miguelzakharia any ETA for a version tag including this one? appreciated!


[qt5-base] use supports expression

From portfile.cmake
if(WITH_MYSQL_PLUGIN AND NOT VCPKG_TARGET_IS_WINDOWS)
    message(WARNING "${PORT} is currently not setup to support feature 'mysqlplugin' on platforms other than windows. Feel free to open up a PR to fix it!")
endif()

Is this right? There was only a warning. And the issue is probably unrelated to upstream support.

The warning is probably due to missing (system) deps as ports instead of a hard blocker.

I have created #28426


Add lcd wake-up settings

Resolves #134 by adding a LCD Wake-Up menu.
The wake-up settings are written to the settings json and reloaded after boot.

This looks great - thank you!
In future please can you avoid adding a bunch of whitespace changes along with your commit though? It makes it more difficult to see exactly what's changed


FEEDBACK: Setup Script Pre-Check - Resources Available to be Deployed in Target Region

When attempting to use the setup script to build the required prereq environment (ie. specifically the Containers Open Hack), it would be a better user experience if the script itself performed a check prior to attempting to deploy the resources.
The reason being (with the Containers Open Hack), it attempts to deploy an Azure SQL Database. However, depending on which Azure Region you select as part of the deployment command... you may encounter the following error:
Creating Azure SQL Server instance...
Deployment failed. Correlation ID: 19039868-35d5-46fe-85c6-248fad5b265b. Location 'West US' is not accepting creation of new Windows Azure SQL Database servers at this time.
Failed to create SQL Server.

The issue with this is that the script will have already deployed (successfully) some of the other resources (ie. Azure Container Registry, Azure Container Instance, Azure Virtual Machine). That means you have a partially successful and partly failed deployment; which you have to clean up first before re-attempting.
Adding a simple check for availability to create the resource(s) in the target region would make this setup far better.

Running into a similar problem with the IaC step of the DevOps v3 hack.  The bicep files are failing to provision the SQL server in a subscription with the following error.
"Subscriptions are restricted from provisioning in this region. Please choose a different region. For exceptions to this rule please open a support request with Issue type of 'Service and subscription limits'. See https://docs.microsoft.com/en-us/azure/sql-database/quota-increase-request for more details."


Update ReflectionUtils.java

I use your lib and I found it very useful, but for an entity that extends base entity with the attribute, not possible to filter like this example:
StatusValidation extends BaseEntity{
fileName... bla bla bla
}
BaseEntity{
createBy.... bla bla bla
}
filterBy("statusValidation.createdBy", CONTAINS, "ops")

sorry not test pass


Cleanup FhirEngineProvider for tests

IMPORTANT: All PRs must be linked to an issue (except for extremely trivial and straightforward changes).
Fixes #1317
Description
Add reset mechanism to FhirEngineProvider.
Add FhirEngineProviderTestRule that cleans up FhirEngineProvider
Alternative(s) considered
Have you considered any alternatives? And if so, why have you chosen the approach in this PR?
Type
Code health | Testing
Screenshots (if applicable)
Checklist

[ ] I have read and acknowledged the Code of conduct.
[ ] I have read the Contributing page.
[ ] I have signed the Google Individual CLA, or I am covered by my company's Corporate CLA.
[ ] I have discussed my proposed solution with code owners in the linked issue(s) and we have agreed upon the general approach.
[ ] I have run ./gradlew spotlessApply and ./gradlew spotlessCheck to check my code follows the style guide of this project.
[ ] I have run ./gradlew check and ./gradlew connectedCheck to test my changes locally.
[ ] I have built and run the demo app(s) to verify my change fixes the issue and/or does not break the demo app(s).

Thank you! I was going crazy with my tests until I realized the structure wasn't cleaning up the database. This Fixes also #1340


Fix italic formatting in link text

Markdown doesn't seem to support direct formatting of raw links, so the current text produces this broken output where the * symbols leak through and the italic formatting is applied incorrectly:

The fix turns the raw link into a markdown link then applies the italic formatting to the link text, to produce this:

This is how it is displaying for me in the deployed preview (https://npm-d2d6eb9157-15913497.drafts.github.io/creating-and-publishing-unscoped-public-packages):

Are you seeing the same thing at the preview url above?

Hi @lukekarrys happy new year! And many thanks for following up on this PR!
I can confirm that I see the same thing you see on the preview URL you gave above (i.e. the the backslash is leaking through and being displayed when it shouldn't).
Please note that I am doing all these edits exclusively on GitHub (i.e. I did not clone the repo locally) and when I do a preview of the edit on the GitHub editor, here is what I see:

I think you may be able to preview the edits in the same way via this link: https://github.com/npm/documentation/blob/d184c8b0daa67f7dbad7cd8b7557aaa40831fc60/content/packages-and-modules/contributing-packages-to-the-registry/creating-and-publishing-unscoped-public-packages.mdx
If it proves too fidgety I suppose we can just leave the link as is, then italicize the "...replacing package-name with..." portion (let me know if I should do that) :+1:

Another example of broken italic formatting in link text from here https://docs.npmjs.com/about-npm#getting-started

The original markdown looks like this:
...which will be available at http://www.npmjs.com/~*yourusername*.

Whatever fix we ultimately implement in this PR will need to be applied to that page too :+1:

تم الإرسال من Galaxy الخاص بي
-------- الرسالة الأصلية --------من: Eric Mutta @.> التاريخ: ٥/١/٢٠٢٣  ٢:٣٣ ص  (GMT+03:00) إلى: npm/documentation @.> نسخة: Subscribed @.***> الموضوع: Re: [npm/documentation] Fix italic formatting in link text (PR #371)
Another example of broken italic formatting in link text from here https://docs.npmjs.com/about-npm#getting-started
The original markdown looks like this:
...which will be available at http://www.npmjs.com/~yourusername.
Whatever fix we ultimately implement in this PR will need to be applied to that page too 👍
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you are subscribed to this thread.Message ID: @.***>

Thanks for finally getting round to this @lukekarrys, looks like using backticks did the trick 👍


webhook migration instruction

Do we have any webhook migration instruction?
based on this example app: https://github.com/ParsePlatform/CloudCode-Express
should I just change the 'https://api.parse.com/1/hooks/triggers' to my heroku app url + /hooks/triggers?
Thanks,

Webhooks isn't supported coming from api.parse.com, but cloud code is supported for writing triggers/functions directly through parse-server.  What was the context in which you wanted to run parse-server and also webhooks?

@gfosco I have the same issue. Can you tell me how I can write triggers and functions directly through parse-server.

Here's a workaround:
https://github.com/ParsePlatform/parse-server/issues/234


flow/compose when given no input functions

Let’s assume that the Committee approves Function.flow and/or Function.compose (#5).
flow() by default returns an identity function, so flow()(1) === 1.
But should flow() === flow()`?
Should there be one identity function instance or should it be constructed each time? The specification must decide.
Same question for compose, if it gets approved. And in the event that the Committee approves both, then we must also decide whether flow() === compose().
I’m currently inclined to make the answer yes (return the same identity-function instance every time).

Will it be different cross realm, or somehow identical?

Also, why do we have to do this? Why couldn't it just throw if you pass it no functions?

Why couldn't it just throw if you pass it no functions?

Yes, this is also an option.
I got somewhat strong pushback from the Committee when I proposed Function.identity, for what it is worth.

I got somewhat strong pushback from the Committee when I proposed Function.identity

It's a bit more optimistic than that though, right? Looks like the pushback was more to do with Function.identity being part of a proposal without a "problem statement", which I guess is another way of saying it was a bit too unfocussed.
This new proposal seems well focussed. Perhaps adding Function.identity now would dilute that? Perhaps a future separate proposal for just that helper would be lubricated by having this new flow/pipe one moving forward a stage or two?

There was specific pushback about Function.identity, particularly the benefit of adding identity versus having developers use x => x every time. For instance, @FUDCo commented:

Quotation about Function.identity

CM: So one of our meta concerns is always about adding complexity into the language, into the spec, and how hard it is to learn as the body of stuff that is in there gets bigger and bigger. So I think it’s a little weird to me to be having things that are easier to just code, easier than the cognitive overhead of learning that they're even in the language in the first place. [For] some of the things like uncurryThis, you know, there are subtleties that actually having somebody make sure you get that right has some value. But something like identity—it seems like you’re adding complexity for relatively small incremental benefit and I don't think it pays for itself. I think this goes hand in hand with the comments that a number of people have made about unbundling this into separate proposals, because I think some of these things could be quite useful and I think some of them would be a burden.

In any case, we’ll have to decide between these choices if flow or compose gets support from the Committee.

flow() returns a new identity function instance every time.
flow() returns the same identity function instance every time (within a single realm).
flow() throws.

Thanks for the quote, I did miss that.
I agree with the point in principle, but not really in practice.
Practically speaking, just how much cognitive baggage does Function.identity really add? There are whole areas of MDN that just have no relevance for me whatsoever in my own day-to-day, but I appreciate that are a class of problems someone else is dealing with that are being addressed by them.
In the case of Function.identity, for those who this is not relevant I'd argue it is exactly as opaque as x => x. If such a person were asked to judge the feature after having it explained to them, perhaps they would indeed wonder at the unnecessary additional complexity.
But I get the feeling that those living in FP/ADT land in a JavaScript way are somewhat eager to take whatever efficiency gains they can. A single-realm Function.identity would be a small, but not insignificant gain in that sense. Even if it were not introduced in this very proposal, perhaps it would be bolstered by it later on in another.
So option 2 for me please. :grin:

I don't feel like it makes sense to always return the same identity function each time, it just goes against my intuition of how I would expect it to behave.
Function.flow(), under normal circumstances will return a new function. I would expect that when you provide no arguments to this function, if we're not wanting that to throw, then we should try and have it match as closely as possible to the argument-passing behavior. no-arguments is supposed to be a special-case of the argument-passing behavior, not a new case that's treated differently.

Or, you can check before you call the function.
if (fns.length === 0) {
  // handle it
}
const result = Function.flow(...fns);

A specific means to check if the result is an exceptional value isn't necessary if it's just as easy to do the check before calling the function.

Question... since we're not applying the "unary"ness to the output function, should we just define the base case (fns.length <= 1) as "return whatever function you passed, or undefined if nothing"?
var a = Function.flow();
a;  // undefined

var f = x => x * 2;
var b = Function.flow( f );
b === f;   // true

I like that @getify. undefined is basically going in, so you get undefined out.

@getify: As an educator, have you seen any novices who have tried using a compose function (either LTR or RTL) with no arguments, or done something like compose(...arrayOfFnsThatActuallyIsEmpty)(arg)? Do you have a feel for what expectations they might have?
Otherwise, I do feel that most precedents from FP languages and libraries (including those with n-ary functions) would have compose() return an identity function, and not matching that may surprise developers who are used to those precedents. But I need to take the time to actually create a table of precedents and their behaviors. I’ll do that if I succeed at advancing to Stage 1 next week.

@js-choi
As it relates to the one argument case, I think it's pretty obvious that you don't need a different function back than the one you passed in, so my instinct is that wouldn't be surprising behavior at all, even for new learners, to just get the function back. That also happens to be the most performant behavior, I think.
But as it relates to the zero argument case, my thoughts are more complicated. Conceptually, it's certainly more graceful to degrade to the identity function case. But that also sort of hides the problem, if it was a mistake that there were no arguments passed in. I have seen students be very frustrated (and quite honestly, very experienced devs the same!) when they think some function is doing something, and it turns out it's a different function than they assumed.
In that sense, it'd be far better if it was a bit noisier that you tried to do a composition with no functions. That could be an exception thrown explicitly, or the more "FP" way is to avoid an exception but return a value that you can clearly see is NOT what you wanted. We're not doing monads (maybe/option/either) here, which would be the most FP approach, so returning undefined seems like the next best FP option. If someone doesn't check it, and they try to invoke undefined, they'll get the infamous (and not super helpful) "undefined is not a function" exception, but at least they'll know there was a problem with the function rather than thinking the function is something that it's not.
OTOH, are there any cases where I want a composition to degrade to an identity pass through? As a default function parameter, maybe:
function something(processor = flow()) {
   // ..
   return processor( someVal );
}

But thinking as an FP person, I think I'd rather avoid using a default/hidden behavior, and be more explicit:
function something(processor = flow(v=>v)) {
   // ..
   return processor( someVal );
}

That sort of approach feels more FP to me. And I think it'd be inline with how I would teach students on the topic.

should we just define the base case (fns.length <= 1) as "return whatever function you passed

This is a good point, I think it makes sense to return the same function that was passed in. Which destroys my argument for wanting a different identity function returned every time you call flow() with no arguments.
As to what the expected behavior should be when flow() is called with no arguments, I would certainly never expect someone to explicitly call flow() with no arguments, or even with one argument. It's only really useful if it's called with multiple arguments. The only reason why it's useful to define behaviors for these scenarios is when flow() gets called with a variable number of arguments, so perhaps it would be useful to think of some scenarios of why you might use a variable number of arguments.
One potential reason is because you want to create a sort of plugin system, allowing people to modify how something behaves, like this:
const resultModifiers = [];

export function addResultModifier(fn) {
  resultModifiers.push(fn);
}

export function doTask () {
  return flow(...resultModifiers)(theResult);
}

In this example, if flow() gracefully degrages to an identity function when no arguments are passed in, then this will just work. If it doesn't, we'd have to write that function like this:
export function doTask () {
  if (resultModifiers.length === 0) {
    return theResult;
  } else {
    return flow(...resultModifiers)(theResult);
  }
}

Which, to your point, this second example, while more verbose, does explicitly state how we want the edge case to be handled, so it's crystal clear that we were thinking about this scenario when building this function and are expecting it to behave just like that. So, I guess it's a matter of preference.

Due to its rejection for Stage 1 on 2022-07, I’m withdrawing this proposal. I really appreciate everyone here giving discussion, though. (In the far future, after the pipe operator gains users, pain points with the pipe operator may be enough motivation to revive this proposal.) Happy trails to all.


Plane Takeoff & Plane Landing Icons

Icon Request

Icon name: Plane Takeoff & Plane Landing
Use case: For travel websites or airtraffic-related topics
Screenshots of similar icons (Font Awesome):

I started to work on them, but am not sure if the results are satisfying yet. Here a screenshot from figma:

Accidentally closed the issue, sorrry.
I already started to work on the icons, but I am not perfectly happy with the results. Here a screenshot from Figma:

Unless you think they are already good, I would be happy about other submissions! :)

I think the tail part definitely needs to be a bit less dense than it currently is and some corners could also do with a bit of rounding.
This is my take based on yours (but I'm not quite happy yet with the level of pixel perfection I've managed to achieve):

You definitely got a point there, I too think that yours look better. I found it hard to get the plane good looking because of the limited level of detail due to the relatively thick line with 2px.

I prefer the pointy nose over the round nose version.

I prefer the pointy nose over the round nose version.

Good idea, since our regular plane also has a somewhat pointy nose. I've updated the icons within the PR accordingly.


Add Shopify pagination

Current PR contains the implementation of pagination feature for integration with Shopify.
The feature is slightly different from a normal pagination feature, due to Shopify's relative cursor-based pagination. With version 2019-07 of their API, Shopify no longer accepts a page parameter with their requests and have moved to relative pagination.
With relative pagination, I am using the Link header from the response to pick the necessary information for moving forward or backwards through the records. Every request that has multiple pages, will include a response header called Link. this header contains the URLs for the previous and next pages, if they exist, respecting the sort order asked for.
The data needed to load the next page is embedded into a query string parameter called page_info. The number of records per page is defaulted to 10, using a constant value, and are passed to each request using the limit parameter.
Some patterns for the Link header response:

Load first page
Response will contain a Link header with details of the next page, in this format:

<https://my-umbraco.myshopify.com/admin/api/2024-01/products.json?limit=10&page_info=[*****]>; rel="next"

Load last page
Response will contain a Link header with details of the next page, in this format:

<https://my-umbraco.myshopify.com/admin/api/2024-01/products.json?limit=10&page_info=[*****]>; rel="previous"

Load a middle page
Response will contain a Link header with details of the next page, in this format:

<https://my-umbraco.myshopify.com/admin/api/2024-01/products.json?limit=3&page_info=[*****]>; rel="previous",
<https://my-umbraco.myshopify.com/admin/api/2024-01/products.json?limit=3&page_info=[*****]>; rel="next"

Instead of using the actual URLs from the header, I am just picking the page_info parameter with specifications of next/previous, and using it in the controller/service.
Other updates included:

Return products count using a separate HTTP request to https://my-umbraco.myshopify.com/admin/api/2024-01/products/count.json. After the configuration is validated, the vm.pagination.totalPages property is set with the count.
When retrieving products for a page, the response object contains two properties (nextPageInfo and previousPageInfo) with the page_info parameter used to toggle pages.
umb-pagination directive used has a different behavior - because I am unable to sent an actual page to the API, we can only move one step ahead or back. This means that if a specific page is selected, I cannot jump to the exact page, I just force the pagination to jump with just one position, simulating the same behavior when pressing Next/Previous.
Value converter updated to support new implementation
HttpResponseHelper helper method to parse the adequate page_info parameters.

We can have a demo tomorrow in our 1-1, only issue I've encountered is with displaying the selected products in the grid when the overlay is opened (e.g., if I select products from page 3, save them and try to select new products, the list view will show me the first page. Only if I move to the 3rd page again, I will be able to see my selected products).

With the latest commit, I've used CSS to hide the paginator's numbers.
Navigation between pages will be handled using Next/Previous:


Publish docker images to ghcr.io

Based on OrcaCollective/1-312-hows-my-driving#72, this changes the publishing mechanism from Dockerhub to ghcr.io.

I'm not sure why the build isn't being triggered on this branch :thinking:

Ignore the failures, this one is finally ready!

Wow this is pretty cool. Might be a little "all eggs in one basket" but I don't think we need to worry about that too much honestly.

Yea, we can always change it down the line to Dockerhub too


Resolution Problems with B1

I've been a long time user of your SplitTool and always found a way to make it work for B2 and TPS.  I can't tell you how much I appreciate your work.  Recently got a new rig and wanted to play B1 again since this release came out.  With the new Alpha 5 and 6 release, I'm unable to get B1 to display a usable resolution.  It will always default to 640 X 480.  Here are some things I've tried and some info on my rig
Win10 machine with 1070 GTX and 4k tv.  Resolution originally set to UHD
After installing Alpha 6 - had to install the 2015 visual C++ to load

I did notice I had to click a button with controller 2 first in order to have both controllers working properly.  The only thing I couldn't do with the controls was to Exit as Player 1.  For some reason the exit screen does not pop up when you click it.

Went into a brand new installation (no character created yet) single player to set resolution at 1080.  Exit.  Tried with Alpha 6 and resolution shoots back to 640.  Set my monitor's resolution to 1080p and tried again.  Same result.  I tried a bunch of different resolutions (including 4k) but to no avail.
Did the same with Alpha 5 and SplitTool 1.5.8.  Same results or wouldn't load 2nd screen.

I'd like to know if there is a place in the instance0 and instance1 where I can manually set the resolution?  I wasn't able to find it on my own.  Or is there something else I'm missing or can try to help troubleshoot the issue?
Thanks and appreciate your hard work.

update:  I've been wrong with my verbiage here.  The resolution stays at whatever I set it to as a single-player, but it's like the resolution doesn't take into account for the two containers or games.  When I do a vertical split, then vertically it's fine but do not see half of the horizontal screen.  When I do a horizontal split, horizontally is fine but it won't show enough vertically to work.  Any ideas?
Thanks again

So it's just the home screen that's not rending correctly.  Once in a LAN game, it works just great.  Thank you and keep up the great work!


Edited "Cause" section.

Edited "Cause" section: the first analysis action.

@tedhudek - This PR is ready to head up to master/live.


How to link my own.pem in Android CB lite.

Below is the implementation for to link my own.pem in Android CB lite for SSL.
Logger.d(TAG, "-------- initializeCbSSL start---------");
AssetManager am = OwnApplication.applicationContext.getAssets();
InputStream is = am.open("own.pem");
    // Load CAs from an InputStream
    CertificateFactory cf = CertificateFactory.getInstance("X.509");
    InputStream caInput = new BufferedInputStream(is);
    Certificate certificate;
    try {
        certificate = cf.generateCertificate(caInput);
    } finally {
        caInput.close();
    }
    // Create a KeyStore containing our trusted CAs
    String keyStoreType = KeyStore.getDefaultType();
    KeyStore keyStore = KeyStore.getInstance(keyStoreType);
    keyStore.load(null, null);
    keyStore.setCertificateEntry("own", certificate);

    SSLSocketFactory socketFactory = new CouchBaseSSLSocketFactory(keyStore);
    //CBLHttpClientFactory.INSTANCE.setSSLSocketFactory(sf);
    CouchbaseLiteHttpClientFactory couchbaseLiteHttpClientFactory = new CouchbaseLiteHttpClientFactory(CouchBaseLiteManager.getInstance().getCBDatabase().getPersistentCookieStore());
    couchbaseLiteHttpClientFactory.setSSLSocketFactory(socketFactory);
    Manager.getSharedInstance().setDefaultHttpClientFactory(couchbaseLiteHttpClientFactory);

public CouchBaseSSLSocketFactory(KeyStore keyStore) throws KeyManagementException, UnrecoverableKeyException, NoSuchAlgorithmException, KeyStoreException {

	super(keyStore);

	TrustManager trustManager = new X509TrustManager() {

		@Override
		public void checkClientTrusted(X509Certificate[] chain,
				String authType) throws CertificateException {
			// TODO Auto-generated method stub

		}

		@Override
		public void checkServerTrusted(X509Certificate[] chain,
				String authType) throws CertificateException {
			// TODO Auto-generated method stub

		}

		@Override
		public X509Certificate[] getAcceptedIssuers() {
			// TODO Auto-generated method stub
			return null;
		}

	};

	 SSLContext context = SSLContext.getInstance("TLS");
	 context.init(null,new TrustManager[] { trustManager },null);
}

I get java.security.cert.CertificateException :
com.android.org.conscrypt.OpenSSLX509CertificateFactory$ParsingException: com.android.org.conscrypt.OpenSSLX509CertificateFactory$ParsingException: java.lang.RuntimeException: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
Anyone encountered this? using own bundled certificate in android CB lite environment. Am i doing all ok here pls help.
Thanks
NitZ

Hi @NandishAndDev,
it seems certificate file formatting issue. see following link.
http://stackoverflow.com/questions/21138485/certificateexception-opensslx509certificatefactoryparsingexception

@hideki yeah the cert content was not liked by the api.. now its resloved and cblite is able to do https connections..


putJson

missing "putJson", "patchJson" methods

Hi @vvnab, thanks for the bug report. Would you be interested in creating a PR?
Thanks
A


Fix for https://github.com/zhihu/Matisse/issues/446

May I suggest the fix for issue https://github.com/zhihu/Matisse/issues/446
We need to get back to affected translators, to revise fields for one, two, other, ... Currently, I just made them all same.

Can you merge this, i cant create release builds anymore (tried 4 latest versions)

No. I'm the the committer of this project, I don't have right to merge it. However, I do fork a copy of this project, and place the fix in development branch. You may want to start from there :-
https://github.com/yccheok/Matisse/tree/development

@yccheok np il compile it from the source, sorry for the ping :)


Mouse actions not working on workspaces after toggle

Describe the bug
The mouse actions doesnt work on the workspace widget after I use hyprpanel -t bar-# (twice) command in NixOS.
The other widgets work fine though.
To Reproduce
toggle (twice) with hyprpanel/ags -t bar-# and try to switch workspaces with the mouse.
Expected behavior
I expect the mouse actions to still work after toggling the bar.
Desktop (please complete the following information):

Distribution: NixOS (stable)
Window Manager/Desktop Environment: Hyprland

I'm unable to replicate this. Could you please share your logs if possible?


Fix #4223. Looplifting error due to StaticSetItem in objectmode

Fixes #4223
Set is_lifted_loop=True for the host function.

Also fixes https://github.com/numba/numba/issues/4185

The patch itself seems ok on inspection but CI is failing:
======================================================================
FAIL: test_loop_lift_warn (numba.tests.test_warnings.TestBuiltins)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/travis/build/numba/numba/numba/tests/test_warnings.py", line 112, in test_loop_lift_warn
    self.assertEqual(len(w), 4)
AssertionError: 7 != 4

seems like the number of warnings has changed as a result of this patch.

The error are fixed by suppressing warnings in the compilation rerun in looplifting.


merge from template-arlac77-github

package.json

chore(deps): add ^22.0.0 remove ^21.1.1 (devDependencies.semantic-release)

:tada: This PR is included in version 1.0.8 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


runtime: refactor assembly for C calls in signal handlers

On change 34501, @minux notes:

It seems the complexity of runtime.sigtramp has got out of control. (sigtramp used to be only called by kernel, now with signal forwarding, it can also be called by foreign C code)
Perhaps we need to separate the concern of saving callee saved register to another function, possbily reusing the existing runtime/cgo crosscall function?

@ianlancetaylor replies:

Signal forwarding applied as soon as we started thinking about combining Go and C code together in the same program.  We're just continuing to grapple with it.
Unifying C ABI register saving sounds like a good idea if we can figure out how to do it.

One possibility for the "C call into Go" direction would be to split `crosscall2' into two functions.  One would save callee-saved registers, call a passed-in function with the non-stack-pointer registers remaining as-is, and then restore the callee-saved registers.  The other would copy argument registers into stack slots, invoke a Go function, and then copy return-parameter slots into return-registers.
The register-saving function does not depend on the particulars of the C call, so it could be reused for calls with other signatures (such as signal handlers).  The arguments-to-slots function necessarily does depend on the function signature (because that determines which registers need to be copied and what size slots they need to be copied into), so that would need specific variants for crosscall2, sigtramp, and any other function with a distinct signature.

For the "Go call into C" direction (such as sigfwd; see #17641), we could probably factor out a function which aligns the stack pointer, invokes a function (again passed in a stack slot or non-argument register), and then restores the stack.  It would still be up to the individual callers to load the appropriate argument registers, but that would at least cut down on some of the duplication (e.g. between sigfwd and callCgoSigaction).


[web] : Do not disconnect device on browser page close

The flutter_web workflow in Vs Code (even in general) is bad
These are the points that I didn't like about it after I used it for about a few minutes.

No auto hot reload on the client side (currently being implemented)

need to manually refresh (ctrl+r)

A new instance of chrome browser is opened unlike React or any other web workflow which webdevs are used to

create a new tab in the existing chrome window

And that instance when closed kills the dev server (why 👎 )

yelling Lost connection to device.
even if another client is running on a different tab

Uses some random port on each run

when I type localhost on my search bar I get a lot of junk as the recommendations instead of plain old localhost:3000

Platform: Windows 10
Please note that web workflow is different from the android workflow.
Request/Suggestion: Make it somewhat like React workflow.

And one more issue #32246

/cc @kevmoo Should this issue be moved to DartCode? I don't think I'm able to transfer issues there.

/move Dart-Code/Dart-Code

/cc @DanTup Help! :)

No auto hot reload on the client side

Hot Reload is not currently supported for Flutter Web, but you can enable "Hot Restart on save" in VS Code settings (it's not on by default because it's not stateful and might be a bit annoying):

I think the other issues are webdev limitations though? (cc @jakemac53)

@yjbanov I added you to the Dart-Code org which might let you move things there - though I'm not sure it's worth moving this one.

Updates:

No auto hot reload on the client side

hot restart on save is supported now

A new instance of chrome browser is opened unlike React or any other web workflow which webdevs are used to

Existing browsers can be used via the web-server or dart debug extension devices

Uses some random port on each run

Port is configurable via --web-port


No full package download for RC6 ?

Hi,
I have noticed that there's no full package (dependencies) download for RC6 release ?
I tried to figure out which vendor/* packages have been updated since RC5 (for example, google/auth has been updated to 0.7), but a full dependencies packages would be appreciated.
I can't use composer because some hosters I'm using (hopefully, not all) don't provide me with ssh access, so running composer command lines is not possible (I know I could user PHP and exec() but error feedback would be a mess).
Thanks

@am63 The download is here. I think it was accidentally in draft mode.


Fix a trailing slash with query strings

I've fixed unexpected normalizing trailing slash.

before: /foo?bar=baz -> /foo?bar=baz/
after: /foo?bar=baz -> /foo/?bar=baz

Please review.

Thanks! 🙏

Thanks for your merging!


moveToNewFile: handle namespace imports too

Fixes #35591

@DanielRosenwasser appetite for taking this to 3.9 final instead of waiting for a servicing release, given the diff? Will queue up a port PR either way

@typescript-bot pack this

Looks reasonable for 3.9.2. I'll merge it into release-3.9 tomorrow once this goes in.


chore(deps): update dependency gitlab-org/gitlab-runner to v17

This PR contains the following updates:

Package
Update
Change

gitlab-org/gitlab-runner
major
v16.9.1 -> v17.0.0

Release Notes

gitlab-org/gitlab-runner (gitlab-org/gitlab-runner)
v17.0.0
Compare Source
New features

Add fleeting docs describing new plugin installation method !4749
Support Google Cloud secrets from projects other than the one containing the WIF pool !4718 (Rich Wareham @rjw57)
Interpret failed pods as system failures rather than script failures for Kubernetes executor !4698 (Daniel Barnes @dbarnes3)
Implement new GCS Cache adapter that uses Google Cloud SDKs auth discovery defaults !4706
Add cpuset_mems option to Docker executor !4725 (Karthik Natarajan @karthiknatarajan)
Add docs for Runner Operator in disconnected network environments !4716
Add support for taskscaler scale throttle !4722
Add the ability to disable the automatic token rotation !4721

Security fixes

Stop installing tar in ubi fips base image !4703

Bug fixes

Revert "Merge remote-tracking branch 'origin/16-11-stable'" !4761
Upgrade fleeting and taskscaler for fixes !4745
Upgrade fleeting and taskscaler for fixes !4745
Remove runner from config when unregister with token !4750 (Karthik Natarajan @karthiknatarajan)
Correctly set CI_JOB_STATUS to timedout/canceled when appropriate !4717
Fix fleeting install subcommand for Windows !4753
Fix fleeting install subcommand for Windows !4753
Correctly set CI_JOB_STATUS to timedout/canceled when appropriate !4717
Upgrade fleeting-artifact to fix plugin installation !4748
Fix buildlogger write race !4734
Upgrade fleeting-artifact to fix plugin installation !4748
Fix buildlogger write race !4734

Maintenance

Require ci prep before incept !4762
Upgrade runner-linters image and golangci-lint for Go 1.22 !4776
Improve upgrade docs !4780
Clean up docs redirects, runner - 2024-05-02 !4756
Added missing apostrophe !4781
State clearly one job = one VM = one container !4774
Add information regarding Beta feature !4757
Updating docs tier badge rules !4779
Fix broken link and typo !4775
Add badge info to autoscaler page !4772
Provide examples and clarify how MachineOptions work for the MachineDriver !4768
Update GitLab Runner Version !4773
Fix stuck Windows 1809 jobs !4771
Remove unsupported GitLab versions from Verify Runner group docs !4764
Remove support for old pre_clone_script and post_clone_script configuration settings !4767
Clarify "circular" docs links !4738
Remove slsa_v02 from artifact_metadata !4760
Remove cmd shell !4754
Remove shared runner naming from gitlab runner docs !4744
Switch to Lychee for link checking !4737
Convert custom kubernetes error to retryError !4662 (Nabil ZOUABI @nabil_zouabi)
Remove license scanning template !4735
Fix jsonschema validation warning for monitoring struct !4724 (Malte Morgenstern @malmor)
Updated examples to avoid helm error !4752
April: fixes trailing whitespace in GitLab Runner project !4751
Remove legacy shell quoting and FF_USE_NEW_SHELL_ESCAPE feature flag !4742
Remove gitlab-runner exec command !4740
Add ssh: handshake failed to troubleshooting !4743
Update autoscaler config option documentation !4730
Fix dead documentation anchor links in README !4733 (Markus Heidelberg @marcows)
Remove terminationGracePeriodSeconds !4739
Remove license scanning template !4735
Add prerequisite info to runner registration token section !4714
Document the Beta status of the Google Cloud plugin for fleeting !4726
Add security risk on runner debug for Shell executors !4586

v16.11.1
Compare Source
Bug fixes

Upgrade fleeting and taskscaler for fixes !4745
Correctly set CI_JOB_STATUS to timedout/canceled when appropriate !4717
Fix fleeting install subcommand for Windows !4753
Upgrade fleeting-artifact to fix plugin installation !4748
Fix buildlogger write race !4734

Maintenance

Remove license scanning template !4735

v16.11.0
Compare Source
New features

Taskscaler and fleeting now use logrus logger !4719
Add autoscaler instance_ready_command option !4709
Implement timestamped logs !4591
Add Jfrog Artifactory Secretes engine as External Secrets option in Hashicorp Vault !4486 (Ivo Ivanov @urbanwax)
Add fleeting subcommand to manage fleeting plugins !4690
Extend GitInfo with RepoObjectFormat to store object format !4645

Bug fixes

Fix log timestamps fixed format !4712
Avoid errors when creating files in pwsh 2.0 !4661 (Robin Lambertz @roblabla)
Give up on the trace finalUpdate if it keeps on failing !4692
Fix test coverage report job !4701
Fix Makefile.build.mk for armv7l (#36976) !4682 (Alexander Puck Neuwirth @APN-Pucky)
Rename ssh.Config to common.SshConfig to avoid misleading config.toml validation error !4694
Update GO_FIPS_VERSION to match GO_VERSION !4687
Revert "Merge branch 'avonbertoldi/27443/graceful-shutdown-shell' into 'main'" !4686

Maintenance

Bump Go version to 1.21.9 !4711
Re-enable SAST scanning !4683
Update a few dependencies !4700
docs: Remove period in the middle of a sentence !4708 (Markus Heidelberg @marcows)
Runner: Updates docs-lint image for new SVG use !4697
Remove extra square brackets in podman section !4705
Check docker version before using deprecated arg !4699 (Anthony Juckel @ajuckel)
Change beta to pre in version string !4681
Upgrade github.com/BurntSushi/toml to v1.3.2 !4695
Docs Update - Missing Hosted Runner Renaming !4693
Use fork of moby/spdystream to fix race condition !4685
Fix typo in note !4691

v16.10.0
Compare Source
New features

[Experimental] Define monitoring threshold for job queue duration !4480
Enable feature cancel_gracefully !4655
Add support for cgroup_parent setting on Docker executor !4652 (Stefano Tenuta @stenuta)
Add runner token to header !4643
Add support for isolating jobs to individual namespaces !4519 (Markus Kostrzewski @MKostrzewski)

Security fixes

FedRAMP/CVE: Don't install wget in ubi images !4660

Bug fixes

Revert "Merge branch 'avonbertoldi/27443/graceful-shutdown-shell' into 'main'" !4686
Build is now canceled if autoscaled instance disappears !4669
Add jobs to compile all tests !4651
Set UseWindowsLegacyProcessStrategy to false by default !4659
Really silence error when execing on container that does not exists !4665
Gracefully stop long running processes when using the shell executor !4601
Call Value() instead of Get() when validating variables !4647
Call Value() instead of Get() when validating variables !4647
Fix get ip on parallels executor on macOS intel !4642 (Carlos Lapao @cjlapao)
Fix fallback_key for local cache !4349 (Andreas Bachlechner @andrbach)
Revert default runner script timeout !4621

Maintenance

Update windows support section !4641
Upgrade fleeting library !4679
Document connection_max_age parameter !4678
Remove broken link to Kubernetes docs' emptyDir !4656 (Victor M. @victoremepunto)
Bump docker+machine version to v0.16.2-gitlab.25 !4676
Document how to troubleshoot Docker Machine issues !4677
Update plugin status, link timeline/epic !4674
Runner: updates last two redirecting links !4675
Fix typo (Telsa -> Tesla) !4673 (Per Lundberg @perlun)
Enabling Vale for badges !4671
Service_linux.go: Remove non-existent syslog.target from service file !4667 (Martin @C0rn3j)
Refactor network.newClient to use Go functional option pattern !4648
Finishes link fixes in Runner docs !4670
Fix Experimental -> Beta references !4668 (Per Lundberg @perlun)
Updating SaaS to be .com !4666
Update runner sizes !4664
Fix reference to project issue !4663
Skip TestBuildGitFetchStrategyFallback on Windows cmd !4653
Update no-trailing-spaces configuration for consistency !4658
Remove unneeded trailing spaces !4644
Skip TestBuildGitFetchStrategyFallback on Windows cmd !4653
Restructure Kubernetes executor page part 2 !4650
Restructure Kubernetes executor page !4649
Add-vale-plugin-to-runner-dev-env-setup !4639
Update usage of GCP to Google Cloud !4623
GIT_LFS_VERSION is no longer required to be set !4636 (Matthew Bradburn @mbradburn-ext)

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

Renovate Ignore Notification
Because you closed this PR without merging, Renovate will ignore this update. You will not get PRs for any future 17.x releases. But if you manually upgrade to 17.x then Renovate will re-enable minor and patch updates automatically.
If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.


Captive portal + transparent proxy seem broken in 21.1.6

Important notices
Before you add a new report, we ask you kindly to acknowledge the following:

[x] I have read the contributing guide lines at https://github.com/opnsense/core/blob/master/CONTRIBUTING.md
[x] I am convinced that my issue is new after having checked both open and closed issues at https://github.com/opnsense/core/issues?q=is%3Aissue

Describe the bug
Enabling transparent proxy features for a captive portal zone seem to have no effect in OPNsense 21.1.6. http/https traffic falls through ipfw without being redirected to the loopback  address, then it hits pf, where it is logged and dropped.
To Reproduce
Steps to reproduce the behavior:

Enable Squid
Set Squid to listen to the loopback interface with transparent proxying enabled
Create a captive portal zone with transparent proxy enabled
Add a firewall rule to allow hosts belonging to the captive portal subnet to connect to <IP_ADDRESS>:3128-3129/tcp
Authenticate to the captive portal and try to browse the Internet

Expected behavior
http/https traffic from authenticated hosts should be transparently forwarded to the local Squid instance listening to <IP_ADDRESS>.
Describe alternatives you considered
So far, we've been using pf rules with policy routing to redirect http/https traffic from authenticated clients to an external proxy server. This is still working fine, but we'd like to move the proxy to the same box as the captive portal, and this bug prevents such a move.
Adding NAT rules to redirect http/https traffic to the local proxy is not a solution, as pf NAT rules are processed before ipfw rules, and would bypass the captive portal entirely.
Screenshots
Captive portal zone configuration (sorry for the French localization):

Relevant log files
Here is our ipfw rule set. The rwo rules for transparent proxying are present, but I'm not sure if they're reachable.
00100 allow pfsync from any to any
00110 allow carp from any to any
00120 allow layer2 mac-type 0x0806,0x8035
00130 allow layer2 mac-type 0x888e,0x88c7
00140 allow layer2 mac-type 0x8863,0x8864
00150 deny layer2 not mac-type 0x0800,0x86dd
00200 skipto 60000 ip6 from ::1 to any
00201 skipto 60000 ip4 from <IP_ADDRESS>/8 to any
00202 skipto 60000 ip6 from any to ::1
00203 skipto 60000 ip4 from any to <IP_ADDRESS>/8
01001 skipto 60000 udp from any to me 53 via vtnet1 keep-state :default
01001 skipto 60000 ip from any to { <IP_ADDRESS> or me } in via vtnet1
01001 skipto 60000 ip from { <IP_ADDRESS> or me } to any out via vtnet1
01001 skipto 60000 icmp from { <IP_ADDRESS> or me } to any out via vtnet1 icmptypes 0
01001 skipto 60000 icmp from any to { <IP_ADDRESS> or me } in via vtnet1 icmptypes 8
03000 skipto tablearg ip from table(0) to any via vtnet1
03000 skipto tablearg ip from any to table(0) via vtnet1
05000 fwd <IP_ADDRESS>,8000 tcp from any to any 443 in via vtnet1
05000 allow ip from any to any 443 via vtnet1
05000 fwd <IP_ADDRESS>,9000 tcp from any to any 80 in via vtnet1
05000 allow ip from any to any 80 via vtnet1
06000 skipto 60000 tcp from any to any out
06002 skipto 65534 ip from any to any via vtnet1
06199 skipto 60000 ip from any to any
30000 count ip from <IP_ADDRESS> to any
30000 count ip from any to <IP_ADDRESS>
30000 skipto 60000 ip from any to any
30001 count ip from <IP_ADDRESS> to any
30001 count ip from any to <IP_ADDRESS>
30001 skipto 60000 ip from any to any
30002 count ip from <IP_ADDRESS> to any
30002 count ip from any to <IP_ADDRESS>
30002 skipto 60000 ip from any to any
30003 count ip from <IP_ADDRESS> to any
30003 count ip from any to <IP_ADDRESS>
30003 skipto 60000 ip from any to any
30004 count ip from <IP_ADDRESS> to any
30004 count ip from any to <IP_ADDRESS>
30004 skipto 60000 ip from any to any
30005 count ip from <IP_ADDRESS> to any
30005 count ip from any to <IP_ADDRESS>
30005 skipto 60000 ip from any to any
30006 count ip from <IP_ADDRESS> to any
30006 count ip from any to <IP_ADDRESS>
30006 skipto 60000 ip from any to any
30007 count ip from <IP_ADDRESS> to any
30007 count ip from any to <IP_ADDRESS>
30007 skipto 60000 ip from any to any
30008 count ip from <IP_ADDRESS> to any
30008 count ip from any to <IP_ADDRESS>
30008 skipto 60000 ip from any to any
30009 count ip from <IP_ADDRESS> to any
30009 count ip from any to <IP_ADDRESS>
30009 skipto 60000 ip from any to any
60000 return
60005 skipto 65533 tcp from me to any 80 via vtnet1
60005 skipto 65533 tcp from me to any 443 via vtnet1
65532 fwd <IP_ADDRESS>,3128 tcp from any to any 80 via vtnet1
65532 fwd <IP_ADDRESS>,3129 tcp from any to any 443 via vtnet1
65533 allow ip from any to any
65534 deny ip from any to any
65535 allow ip from any to any

Additional context
Captive portal zone subnet: <IP_ADDRESS>/25
Captive portal server address: <IP_ADDRESS>/25
Environment
OPNsense 21.1.6 (amd64, LibreSSL).
KVM host with 4096GB RAM
virtio adapters

So when was this working last (version)?

I have no idea. Until then we used policy routing to force http traffic through an external proxy server, so we've never used the feature before. I'll try to make some tests this afternoon with opnsense-revert, but am unsure about how previous versions will deal with config schema changes. I may have to go back to 16.7, where the transparent proxy feature was implemented. At that time, it was probably working.

It seems a bit odd... and you can't easily revert major versions.

Adding NAT rules to redirect http/https traffic to the local proxy is not a solution, as pf NAT rules are processed before ipfw rules, and would bypass the captive portal entirely.

I have no idea why they would bypass it with shared forwarding in place (default configuration).
Even then, why not use a squid based authentication instead of an added captive portal layer?
Cheers,
Franco

Adding NAT rules to redirect http/https traffic to the local proxy is not a solution, as pf NAT rules are processed before ipfw rules, and would bypass the captive portal entirely.

I have no idea why they would bypass it with shared forwarding in place (default configuration).

Yes, shared forwarding is enabled. Adding NAT rules does indeed redirect http traffic the our local proxy, but it happens for any host on the CP subnet, authenticated or not. AFAIK, this is the behaviour which led to the addition of the transparent proxy feature in captive portal zones, as there was no way to have both captive portal + transparent proxy working on the same box at that time.

Even then, why not use a squid based authentication instead of an added captive portal layer?

Captive portal authentication is required because we need to authenticate all kinds of traffic (including non-HTTP). This is a guest network, and using disposable paper vouchers is a great solution. I'd like to avoid adding another layer of authentication in Squid. For us, transparent proxying after CP authentication is the ideal way to go.

Relevant ticket was https://github.com/opnsense/core/issues/1189
I am not aware of any changes, breaking or otherwise. I can test this afternoon briefly.

I managed to get it working. The firewall rule I added was allowing hosts from the CP zone to connect to <IP_ADDRESS>:3128-3129/tcp, as we would for a classic NAT setup:
pass in log quick on vtnet1 inet proto tcp from (vtnet1:network:1) to <IP_ADDRESS> port = 3128 flags S/SA keep state

Changing the rule to allow CP hosts to connect any non-private host made it work. (GRP_IANA_PRIVATE is an alias for RFC1918 ranges):
pass in log quick on vtnet1 inet proto tcp from (vtnet1:network:1) to ! <GRP_IANA_PRIVATE:5> port = http flags S/SA keep state

I can see the traffic flowing in Squid access log, so it seems OK. Could you confirm that this behaviour is expected ?

<IP_ADDRESS> cannot be reached by outside hosts so rules for it will not do anything (you can see from the inspect statistics feature).
In general a pass rule for the interface is all that is needed and the redirects are, eh, transparent so to speak. Of course, you probably want to avoid your guests from accessing other subnets, but that could also be done by a separate block rule.
Cheers,
Franco

<IP_ADDRESS> cannot be reached by outside hosts so rules for it will not do anything (you can see from the inspect statistics feature).

Yes, this is true for standard rules, but when NAT is used to redirect traffic to a loopback address, such a rule must be added to the firewall to allow inbound packets to pass (allowing traffic to the original destination is not enough).
What I do not understand is where exactly IPFW stands in the whole traffic flow: are IPFW rules processed before or after pf ones ? Intuitively, I would say that pf rules are evaluated before IPFW, but i'm not very sure of it.
Anyway, feel free to close the ticket if everything is working as expected.
Thanks!

such a rule must be added to the firewall to allow inbound packets to pass

In the most restrictive sense yes, but you essentially want the traffic to go through the firewall and not just to a local destination only. That is still true for transparent proxy use where you happen to hit an "allow all from this firewall" implicit rule by chance.
And since NAT isn't being used here from the POV of pf(4) this is further evidence that it requires a global rule view, not just a mini view of what is going to happen with the traffic. After all pf(4) is only doing what it is told.
To visualize:
pf in -> ipfw in -> ipfw out -> pf out + NAT
Cheers,
Franco

I'm sorry, I must be dumb, but I'm still lost. When the traffic hits the proxy on loopback, Squid itself creates a new connection to fetch the requested resource from a remote host. This outbound connection is also evaluated ("allow all from this firewall') and given its own entry in the state table. So if whole flow is comprised of 2 independent connections (1 in from the client, 1 out from the proxy), how is pf able to link the two and allow them both with a single rule ?
if pf wraps the whole ipfw processing

Oh, I got it. The rule only allows the traffic in. Since proxy redirection is handled after by IPFW, pf has no insight on it.
Thanks and sorry!

Yes, correct. All interface-based rules are default to inbound filtering.
Not a problem, always happy to discuss and troubleshoot :)


The example in the documentation doesn't work

Hello , i tried to run this example but the variable jwt remain empty , i think there is a bug in your code , the response is always empty
const didJWT = require('did-jwt')
const signer = didJWT.SimpleSigner('278a5de700e29faae8e40e366ec5012b5ec63d36ec77e8a2417154cc1d25383f');

let jwt = '';
didJWT.createJWT({aud: 'did:ethr:0xf3beac30c498d9e26865f34fcaa57dbb935b0d74', exp:<PHONE_NUMBER>, name: 'uPort Developer'},
                 {alg: 'ES256K-R', issuer: 'did:ethr:0xf3beac30c498d9e26865f34fcaa57dbb935b0d74', signer}).then( response =>
                 { jwt = response });

console.log(jwt);

take a look at promises, if you use an async function you could use it as in the other programming languages

Thanks for spotting this.
There's a typo and the console.log should be inside the then block, right after the jwt = response statement.
Feel free to open a PR to correct this mistake if this fixes your problem.

Thanks for spotting this.
There's a typo and the console.log should be inside the then block, right after the jwt = response statement.
Feel free to open a PR to correct this mistake if this fixes your problem.

thanks @mirceanis


teardown_request isn't passed exceptions

I am trying to use Flask's teardown_request feature to commit or rollback the DB transaction based on if there was an exception while handling the request. However it doesn't appear that teardown request ever gets the exception that is raised in the request.
def _teardown_request(exc):
    """
    Commit the current Database Transaction
    :param Exception or None exc: Exception handling this request
    """
    if exc:
        # Got an exception, so rollback transaction
        logger = logging.getLogger(__name__)
        logger.error("Got Exception in request, rollback transaction. %s", exc)
        db.rollback()
    else:
        db.commit()

    db.close()

blueprint.teardown_request(_teardown_request)

However this exception didn't rollback the request:
ERROR:app:log_exception:1423:Exception on /v3/accounts/me/investments [GET]
Traceback (most recent call last):
  File "/Users/rgant/api/venv/lib/python3.5/site-packages/flask/app.py", line 1475, in full_dispatch_request
    rv = self.dispatch_request()
  File "/Users/rgant/api/venv/lib/python3.5/site-packages/flask/app.py", line 1461, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/Users/rgant/api/venv/lib/python3.5/site-packages/flask_restful/__init__.py", line 477, in wrapper
    resp = resource(*args, **kwargs)
  File "/Users/rgant/api/venv/lib/python3.5/site-packages/flask/views.py", line 84, in view
    return self.dispatch_request(*args, **kwargs)
  File "/Users/rgant/api/venv/lib/python3.5/site-packages/flask_restful/__init__.py", line 587, in dispatch_request
    resp = meth(*args, **kwargs)
  File "/Users/rgant/api/tiapi.py", line 39, in auth_wrap
    return func(*args, **kwargs)
  File "/Users/rgant/api/investment.py", line 38, in get
    raise Exception('Github Issue Example')
Exception: Github Issue Example
INFO:db:commit:49:Commit Session.
INFO:db:close:43:Remove Scoped Session.
WARNING:conftest:method_log:89:Non Successful Status Code (500). Body: b'{"message": "Internal Server Error"}\n'

Any suggestions where I am going wrong trying to set this up?

Maybe you need PRESERVE_CONTEXT_ON_EXCEPTION in debug mode per this SO answer: http://stackoverflow.com/a/33284980/457935 (?)

Not really seeing what is being done differently in that SO ticket than my setup above. But there is a bunch of stuff there so maybe I just missed it.

I'm trying to do the exact thing than @rgant and have the same issue (exception is always None even if the handler raised one). Does anyone know a fix for this by any chance?

I have met same issue, Is there any solution on it? @rgant


file api actually returns the remote file path

Hey I'm trying to iron out the differences between our fork and the main version so that any w3c related changes I do could possibly become a clean PR, and we can keep up with your improvements.
Here's the first one, the /file api is not well documented and seems to be a chrome only function but it does in fact return the remote file path so it can then be used as part of a test. Without knowing the remote file path you cannot do file tests like this on a remote server.
this docs page was the only one i could find that documented this behaviour
https://webdriver.io/docs/api/browser/uploadFile/

Sounds good to me. I've not actually used this function before but this looks more consistent with the documentation.


youtube-dl not works with python 3.5

Please follow the guide below

You will be asked some questions and requested to provide some information, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your issue (like that [x])
Use Preview tab to see how your issue will actually look like

Make sure you are using the latest version: run youtube-dl --version and ensure your version is 2016.05.16. If it's not read this FAQ entry and update. Issues with outdated version will be rejected.

[x] I've verified and I assure that I'm running youtube-dl 2016.05.16

Before submitting an issue make sure you have:

[x] At least skimmed through README and most notably FAQ and BUGS sections
[x] Searched the bugtracker for similar issues including closed ones

What is the purpose of your issue?

[x] Bug report (encountered problems with youtube-dl)
[ ] Site support request (request for adding support for a new site)
[ ] Feature request (request for a new functionality)
[ ] Question
[ ] Other

The following sections concretize particular purposed issues, you can erase any section (the contents between triple ---) not applicable to your issue

If the purpose of this issue is a bug report, site support request or you are not completely sure provide the full verbose output as follows:
Add -v flag to your command line you run youtube-dl with, copy the whole output and insert it here. It should look similar to one below (replace it with your log inserted between triple ```):
youtube-dl -v http://youtu.be/3wjb3HtD32c
[debug] System config: []
[debug] User config: []
[debug] Command-line args: ['-v', 'http://youtu.be/3wjb3HtD32c']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2016.05.16
[debug] Python version 3.5.1 - Linux-<IP_ADDRESS>-armv5tel-with-libc0
[debug] exe versions: ffmpeg 2.1.8-compiled_by_barmalej2_for_ffp0.7arm, ffprobe 2.1.8-compiled_by_barmalej2_for_ffp0.7arm, rtmpdump 2.4
[debug] Proxy map: {}
[youtube] 3wjb3HtD32c: Downloading webpage
[youtube] 3wjb3HtD32c: Downloading video info webpage
[youtube] 3wjb3HtD32c: Extracting video information
[youtube] {22} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] 3wjb3HtD32c: Downloading player https://s.ytimg.com/yts/jsbin/player-en_US-vflGaNMBw/base.js
[youtube] {43} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {18} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {5} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {36} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {17} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {137} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {248} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {136} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {247} signature length 40.39, html5 player en_US-vflGaNMBw
[youtube] 3wjb3HtD32c: Downloading player https://s.ytimg.com/yts/jsbin/player-en_US-vflGaNMBw/base.js
[youtube] {135} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {244} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {134} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {243} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {133} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {242} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {160} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {278} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {140} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {171} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {249} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {250} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {251} signature length 40.41, html5 player en_US-vflGaNMBw
Traceback (most recent call last):
  File "/ffp/bin/youtube-dl", line 11, in <module>
    sys.exit(main())
  File "/ffp/lib/python3.5/site-packages/youtube_dl/__init__.py", line 421, in main
    _real_main(argv)
  File "/ffp/lib/python3.5/site-packages/youtube_dl/__init__.py", line 411, in _real_main
    retcode = ydl.download(all_urls)
  File "/ffp/lib/python3.5/site-packages/youtube_dl/YoutubeDL.py", line 1736, in download
    url, force_generic_extractor=self.params.get('force_generic_extractor', False))
  File "/ffp/lib/python3.5/site-packages/youtube_dl/YoutubeDL.py", line 687, in extract_info
    return self.process_ie_result(ie_result, download, extra_info)
  File "/ffp/lib/python3.5/site-packages/youtube_dl/YoutubeDL.py", line 733, in process_ie_result
    return self.process_video_result(ie_result, download=download)
  File "/ffp/lib/python3.5/site-packages/youtube_dl/YoutubeDL.py", line 1382, in process_video_result
    self.process_info(new_info)
  File "/ffp/lib/python3.5/site-packages/youtube_dl/YoutubeDL.py", line 1453, in process_info
    reason = self._match_entry(info_dict, incomplete=False)
  File "/ffp/lib/python3.5/site-packages/youtube_dl/YoutubeDL.py", line 620, in _match_entry
    if date not in dateRange:
  File "/ffp/lib/python3.5/site-packages/youtube_dl/utils.py", line 1138, in __contains__
    date = date_from_str(date)
  File "/ffp/lib/python3.5/site-packages/youtube_dl/utils.py", line 1101, in date_from_str
    return datetime.datetime.strptime(date_str, '%Y%m%d').date()
  File "/ffp/lib/python3.5/_strptime.py", line 500, in _strptime_datetime
    tt, fraction = _strptime(data_string, format)
  File "/ffp/lib/python3.5/_strptime.py", line 337, in _strptime
    (data_string, format))
ValueError: time data '' does not match format '%Y%m%d'

Description of your issue, suggested solution and other information
Hi!
I'm using the youtube-dl tool about a few year ago and it works perfectly. But now I updated my python to 3.5.1, from the old 2.7 version. And if I try to download something it says a lot of errors. The errors Can be seen at the command line output part of the issue.
I installed it with pip, but if I compile it, the output is the same...
Thanks!

Run the command youtube-dl -vF "http://youtu.be/3wjb3HtD32c" --dump-pages > output.txt and upload output.txt.

Duplicate of #7875.

Well both occur on ARM. @MrDini123 Which board are you using and how did you install Python?

Okay, here it is:
http://pastebin.com/raw/iEskWDsP
(Sorry, but it was too long to paste it here.)
I'm using a ZyXEL nas with FFp. It has arm5 based processor. And with an old <IP_ADDRESS> kernel... :/ But it works really cool. The only bad thing is, I have to compile all of packages that I want... So the python is my compile too. But I didn't disabled anything at the configure and it works with some other python codes.

Seems the following code segment in youtube_dl/extractor/youtube.py causes the failure:
        # upload date
        upload_date = self._html_search_meta(
            'datePublished', video_webpage, 'upload date', default=None)
        if not upload_date:
            upload_date = self._search_regex(
                [r'(?s)id="eow-date.*?>(.*?)',
                 r'id="watch-uploader-info".*?>.*?(?:Published|Uploaded|Streamed live|Started) on (.+?)'],
                video_webpage, 'upload date', default=None)
            if upload_date:
                upload_date = ' '.join(re.sub(r'[/,-]', r' ', mobj.group(1)).split())
        upload_date = unified_strdate(upload_date)

On your board the final value of upload_date is an empty string '', but it should never be. Could you add some debugging print(upload_date) calls to track changes of its value?

Certainly.
youtube-dl -v http://youtu.be/3wjb3HtD32c       [debug] System config: []
[debug] User config: []
[debug] Command-line args: ['-v', 'http://youtu.be/3wjb3HtD32c'][debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8[debug] youtube-dl version 2016.05.16
[debug] Python version 3.5.1 - Linux-<IP_ADDRESS>-armv5tel-with-libc0
[debug] exe versions: ffmpeg 2.1.8-compiled_by_barmalej2_for_ffp0.7arm, ffprobe 2.1.8-compiled_by_barmalej2_for_ffp0.7arm, rtmpdump 2.4
[debug] Proxy map: {}
[youtube] 3wjb3HtD32c: Downloading webpage
[youtube] 3wjb3HtD32c: Downloading video info webpage
[youtube] 3wjb3HtD32c: Extracting video information

[youtube] {22} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {43} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {18} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {5} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {36} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {17} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {137} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {248} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {136} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {247} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {135} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {244} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {134} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {243} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {133} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {242} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {160} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {278} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {140} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {171} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {249} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {250} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {251} signature length 40.41, html5 player en_US-vflGaNMBw
Traceback (most recent call last):
  File "/ffp/bin/youtube-dl", line 11, in <module>
    sys.exit(main())
  File "/ffp/lib/python3.5/site-packages/youtube_dl/__init__.py", line 421, in main
    _real_main(argv)
  File "/ffp/lib/python3.5/site-packages/youtube_dl/__init__.py", line 411, in _real_main
    retcode = ydl.download(all_urls)
  File "/ffp/lib/python3.5/site-packages/youtube_dl/YoutubeDL.py", line 1736, in download
    url, force_generic_extractor=self.params.get('force_generic_extractor', False))
  File "/ffp/lib/python3.5/site-packages/youtube_dl/YoutubeDL.py", line 687, in extract_info
    return self.process_ie_result(ie_result, download, extra_info)
  File "/ffp/lib/python3.5/site-packages/youtube_dl/YoutubeDL.py", line 733, in process_ie_result
    return self.process_video_result(ie_result, download=download)
  File "/ffp/lib/python3.5/site-packages/youtube_dl/YoutubeDL.py", line 1382, in process_video_result
    self.process_info(new_info)
  File "/ffp/lib/python3.5/site-packages/youtube_dl/YoutubeDL.py", line 1453, in process_info
    reason = self._match_entry(info_dict, incomplete=False)
  File "/ffp/lib/python3.5/site-packages/youtube_dl/YoutubeDL.py", line 620, in _match_entry
    if date not in dateRange:
  File "/ffp/lib/python3.5/site-packages/youtube_dl/utils.py", line 1138, in __contains__
    date = date_from_str(date)
  File "/ffp/lib/python3.5/site-packages/youtube_dl/utils.py", line 1101, in date_from_str
    return datetime.datetime.strptime(date_str, '%Y%m%d').date()  File "/ffp/lib/python3.5/_strptime.py", line 500, in _strptime_datetime
    tt, fraction = _strptime(data_string, format)
  File "/ffp/lib/python3.5/_strptime.py", line 337, in _strptime    (data_string, format))
ValueError: time data '' does not match format '%Y%m%d'

This is the verbose output with print. But I Can't see the print's output in this out...

[youtube] 3wjb3HtD32c: Extracting video information

[youtube] {22} signature length 40.41, html5 player en_US-vflGaNMBw

It's indeed an empty string. print('------%s------' % upload_date) should make things clear.
Could you try the following minimal script?
import re
import urllib.request

webpage = urllib.request.urlopen('http://youtu.be/3wjb3HtD32c').read().decode('utf-8')

mobj = re.search(
    r'''(?isx)<meta
        (?=[^>]+(?:itemprop|name|property|id|http-equiv)=(["\']?)%s\1)
        [^>]+?content=(["\'])(?P<content>.*?)\2''' % re.escape('datePublished'), webpage)

print(repr(mobj))
print(repr(mobj.group('content')))

 python ./test.py
  File "./test.py", line 11
    print(repr(mobj))
    ^
IndentationError: unexpected indent

Oh. It don't like if I paste a code via mc. But if I modify the py file by vi it works and says this:
<_sre.SRE_Match object; span=(103467, 103518), match='<meta itemprop="datePublished" content="2016-03-1>
'2016-03-11'

Where did you insert print(upload_date)?

After this:
upload_date = unified_strdate(upload_date)

What are the values of upload_date just before unified_strdate and just after self._html_search_regex? Use print(repr(upload_date)) so that empty strings are printed as ''.

I tried to paste the print out of the if, but it says sg like this:
youtube-dl -v http://youtu.be/3wjb3HtD32c
Traceback (most recent call last):
  File "/ffp/lib/python3.5/site-packages/youtube_dl/extractor/__init__.py", line 4, in <module>
    from .lazy_extractors import *
ImportError: No module named 'youtube_dl.extractor.lazy_extractors'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/ffp/bin/youtube-dl", line 7, in <module>
    from youtube_dl import main
  File "/ffp/lib/python3.5/site-packages/youtube_dl/__init__.py", line 43, in <module>
    from .extractor import gen_extractors, list_extractors
  File "/ffp/lib/python3.5/site-packages/youtube_dl/extractor/__init__.py", line 9, in <module>
    from .extractors import *
  File "/ffp/lib/python3.5/site-packages/youtube_dl/extractor/extractors.py", line 39, in <module>
    from .ard import (
  File "/ffp/lib/python3.5/site-packages/youtube_dl/extractor/ard.py", line 7, in <module>
    from .generic import GenericIE
  File "/ffp/lib/python3.5/site-packages/youtube_dl/extractor/generic.py", line 10, in <module>
    from .youtube import YoutubeIE
  File "/ffp/lib/python3.5/site-packages/youtube_dl/extractor/youtube.py", line 1421
    print(repr(upload_date))
                           ^
IndentationError: unindent does not match any outer indentation level

And here is the wrong part of the code:
       # upload date
        upload_date = self._html_search_meta(
            'datePublished', video_webpage, 'upload date', default=None)
        if not upload_date:
            upload_date = self._search_regex(
                [r'(?s)id="eow-date.*?>(.*?)',
                 r'id="watch-uploader-info".*?>.*?(?:Published|Uploaded|Streamed live|Started) on (.+?)'],
                video_webpage, 'upload date', default=None)
            if upload_date:
                upload_date = ' '.join(re.sub(r'[/,-]', r' ', mobj.group(1)).split())
        upload_date = unified_strdate(upload_date)
     print(repr(upload_date))

Python enforces strict code identation. The following codes should work:
        # upload date
        upload_date = self._html_search_meta(
            'datePublished', video_webpage, 'upload date', default=None)
        print(repr(upload_date))
        if not upload_date:
            upload_date = self._search_regex(
                [r'(?s)id="eow-date.*?>(.*?)',
                 r'id="watch-uploader-info".*?>.*?(?:Published|Uploaded|Streamed live|Started) on (.+?)'],
                video_webpage, 'upload date', default=None)
            print(repr(upload_date))
            if upload_date:
                upload_date = ' '.join(re.sub(r'[/,-]', r' ', mobj.group(1)).split())
        print(repr(upload_date))
        upload_date = unified_strdate(upload_date)
        print(repr(upload_date))

Right! :)
youtube-dl -v http://youtu.be/3wjb3HtD32c
[debug] System config: []
[debug] User config: []
[debug] Command-line args: ['-v', 'http://youtu.be/3wjb3HtD32c'][debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8[debug] youtube-dl version 2016.05.16
[debug] Python version 3.5.1 - Linux-<IP_ADDRESS>-armv5tel-with-libc0
[debug] exe versions: ffmpeg 2.1.8-compiled_by_barmalej2_for_ffp0.7arm, ffprobe 2.1.8-compiled_by_barmalej2_for_ffp0.7arm, rtmpdump 2.4
[debug] Proxy map: {}
[youtube] 3wjb3HtD32c: Downloading webpage
[youtube] 3wjb3HtD32c: Downloading video info webpage
[youtube] 3wjb3HtD32c: Extracting video information
'2016-03-11'
'2016-03-11'
''
[youtube] {22} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {43} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {18} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {5} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {36} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {17} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {137} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {248} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {136} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {247} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {135} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {244} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {134} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {243} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {133} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {242} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {160} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {278} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {140} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {171} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {249} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {250} signature length 40.41, html5 player en_US-vflGaNMBw
[youtube] {251} signature length 40.41, html5 player en_US-vflGaNMBw
Traceback (most recent call last):
  File "/ffp/bin/youtube-dl", line 11, in <module>
    sys.exit(main())
  File "/ffp/lib/python3.5/site-packages/youtube_dl/__init__.py", line 421, in main
    _real_main(argv)
  File "/ffp/lib/python3.5/site-packages/youtube_dl/__init__.py", line 411, in _real_main
    retcode = ydl.download(all_urls)
  File "/ffp/lib/python3.5/site-packages/youtube_dl/YoutubeDL.py", line 1736, in download
    url, force_generic_extractor=self.params.get('force_generic_extractor', False))
  File "/ffp/lib/python3.5/site-packages/youtube_dl/YoutubeDL.py", line 687, in extract_info
    return self.process_ie_result(ie_result, download, extra_info)
  File "/ffp/lib/python3.5/site-packages/youtube_dl/YoutubeDL.py", line 733, in process_ie_result
    return self.process_video_result(ie_result, download=download)
  File "/ffp/lib/python3.5/site-packages/youtube_dl/YoutubeDL.py", line 1382, in process_video_result
    self.process_info(new_info)
  File "/ffp/lib/python3.5/site-packages/youtube_dl/YoutubeDL.py", line 1453, in process_info
    reason = self._match_entry(info_dict, incomplete=False)
  File "/ffp/lib/python3.5/site-packages/youtube_dl/YoutubeDL.py", line 620, in _match_entry
    if date not in dateRange:
  File "/ffp/lib/python3.5/site-packages/youtube_dl/utils.py", line 1138, in __contains__
    date = date_from_str(date)
  File "/ffp/lib/python3.5/site-packages/youtube_dl/utils.py", line 1101, in date_from_str
    return datetime.datetime.strptime(date_str, '%Y%m%d').date()  File "/ffp/lib/python3.5/_strptime.py", line 500, in _strptime_datetime
    tt, fraction = _strptime(data_string, format)
  File "/ffp/lib/python3.5/_strptime.py", line 337, in _strptime    (data_string, format))
ValueError: time data '' does not match format '%Y%m%d'

Now we know unified_strdate is broken. Please save the following codes as test_unified_strdate.py and run it with Python:
import datetime
import email
import re

date_str = '2016-03-11'

upload_date = None
# %z (UTC offset) is only supported in python>=3.2
if not re.match(r'^[0-9]{1,2}-[0-9]{1,2}-[0-9]{4}$', date_str):
    date_str = re.sub(r' ?(\+|-)[0-9]{2}:?[0-9]{2}$', '', date_str)
# Remove AM/PM + timezone
date_str = re.sub(r'(?i)\s*(?:AM|PM)(?:\s+[A-Z]+)?', '', date_str)
print(repr(date_str))

format_expressions = [
    '%d %B %Y',
    '%d %b %Y',
    '%B %d %Y',
    '%b %d %Y',
    '%b %dst %Y %I:%M',
    '%b %dnd %Y %I:%M',
    '%b %dth %Y %I:%M',
    '%Y %m %d',
    '%Y-%m-%d',
    '%Y/%m/%d',
    '%Y/%m/%d %H:%M:%S',
    '%Y-%m-%d %H:%M:%S',
    '%Y-%m-%d %H:%M:%S.%f',
    '%d.%m.%Y %H:%M',
    '%d.%m.%Y %H.%M',
    '%Y-%m-%dT%H:%M:%SZ',
    '%Y-%m-%dT%H:%M:%S.%fZ',
    '%Y-%m-%dT%H:%M:%S.%f0Z',
    '%Y-%m-%dT%H:%M:%S',
    '%Y-%m-%dT%H:%M:%S.%f',
    '%Y-%m-%dT%H:%M',
    '%d-%m-%Y',
    '%d.%m.%Y',
    '%d/%m/%Y',
    '%d/%m/%y',
    '%d/%m/%Y %H:%M:%S',
]
for expression in format_expressions:
    try:
        print(expression)
        upload_date = datetime.datetime.strptime(date_str, expression).strftime('%Y%m%d')
        print(repr(upload_date))
    except ValueError:
        pass
if upload_date is None:
    timetuple = email.utils.parsedate_tz(date_str)
    print(repr(timetuple))
    if timetuple:
        upload_date = datetime.datetime(*timetuple[:6]).strftime('%Y%m%d')
if upload_date is not None:
    print(repr(str(upload_date)))

Here it is:
python ./test_unified_strdate.py
'2016-03-11'
%d %B %Y
%d %b %Y
%B %d %Y
%b %d %Y
%b %dst %Y %I:%M
%b %dnd %Y %I:%M
%b %dth %Y %I:%M
%Y %m %d
%Y-%m-%d
''
%Y/%m/%d
%Y/%m/%d %H:%M:%S
%Y-%m-%d %H:%M:%S
%Y-%m-%d %H:%M:%S.%f
%d.%m.%Y %H:%M
%d.%m.%Y %H.%M
%Y-%m-%dT%H:%M:%SZ
%Y-%m-%dT%H:%M:%S.%fZ
%Y-%m-%dT%H:%M:%S.%f0Z
%Y-%m-%dT%H:%M:%S
%Y-%m-%dT%H:%M:%S.%f
%Y-%m-%dT%H:%M
%d-%m-%Y
%d.%m.%Y
%d/%m/%Y
%d/%m/%y
%d/%m/%Y %H:%M:%S
''

And how about it?
import datetime

t = datetime.datetime.strptime('2016-03-11', '%Y-%m-%d')
print(repr(t))
s = t.strftime('%Y%m%d')
print(repr(s))
t = datetime.datetime(2016, 3, 11, 0, 0)
print(repr(t))
s = t.strftime('%Y%m%d')
print(repr(s))

On my machine (Python 3.5.1 on x86_64 PC), the result is:
datetime.datetime(2016, 3, 11, 0, 0)
'20160311'
datetime.datetime(2016, 3, 11, 0, 0)
'20160311'

If you got something different, your Python needs a fix.

Unfortunatelly it is different...
python ./test_unified_strdate.py
datetime.datetime(2016, 3, 11, 0, 0)
''
datetime.datetime(2016, 3, 11, 0, 0)
''

What Do You think, what compile parameter is missing?

I guess strftime on your system is broken. Please try the following two C programs:
#include <stdio.h>
#include <string.h>
#include <time.h>

int main()
{
    char buf[1024];
    struct tm t;
    memset(buf, 0, sizeof(buf));
    memset(&t, 0, sizeof(t));
    t.tm_year = 2016 - 1900;
    t.tm_mon = 3 - 1;
    t.tm_mday = 11;
    strftime(buf, 1024, "%Y%m%d", &t);
    printf("%s\n", buf);
    return 0;
}

And:
#include <string.h>
#include <time.h>
#include <wchar.h>

int main()
{
    wchar_t buf[1024];
    struct tm t;
    memset(buf, 0, sizeof(buf));
    memset(&t, 0, sizeof(t));
    t.tm_year = 2016 - 1900;
    t.tm_mon = 3 - 1;
    t.tm_mday = 11;
    wcsftime(buf, 1024, L"%Y%m%d", &t);
    wprintf(L"%ls\n", buf);
    return 0;
}

Both programs should print 20160311. If any not, ask your board vendor or support forums. If C programs give correct outputs while Python not, go to https://bugs.python.org/ and file a bug.

I think it isn't a python bug:
root@NSA320S:~# ./first.out
20160311
root@NSA320S:~# ./second.out

Ok, many thanks for Your help, I will ask it in the nas forum. I'm going to close this and if it won't be solved, I will reopen it.

wcsftime is broken on your sys while strftime works fine. You can manually disable wcsftime in pyconfig.h.in.

Hi!
It is an uClibc bug. Because the wcsftime() doesn't backported to 0.9.33 branch...
So I solved the problem by removing wcsftime from the configure script and I had to recompile it.
Or as a second solution (as a forum member at my nas's topic said) i Could manualy bacport it to the uClibc.
And now, it works perfectly! :)
Thanks a lot!

Great! Thanks for helping testing.


String.arbitrary.generate Crashes when compiled as Release

v0.4.2
Notice this because I install via Carthage.
Property.swift:476
@effects(readnone)
internal func • <A, B, C>(f : B -> C, g : A -> B) -> A -> C {
	return { f(g($0)) }
}

Backtrace is here: https://gist.github.com/kykim/eafe1ec7b5c040fe5a1b
Simple fix is to pass --configuration Debug to Carthage, but this seems a bit odd.

Did you manage to get the seed numbers for each and a specific test?  We can reproduce with those.

how do i grab the seed numbers?

Actually, it looks like you called generate in your test for some reason.  In that case if you can show the test case I should be able to reproduce it.  If you need to strip anything out, please leave the SwiftCheck calls intact with dummy values in place of your private code.

I created a PR with the test case here: https://github.com/typelift/SwiftCheck/pull/138
Basically, I'm creating an ArbitraryNSData struct that uses String.arbitrary.generate underneath.
As I stated before, this passes with the DEBUG Build Configuration, but crashes with RELEASE.
HTH and Thanks!
-kevin

Fixed by the merger of #136.  I'm going to put out a new minor release to patch this and you should be all set to go!
If you have any more questions or come across any more issues, don't hesitate to open more issues.
:sparkles:

awesome!
what was the cause and fix? did it just get "fixed" with the changes you had queued up?
thanks again!

I can't be sure of the exact cause because it has to do with the optimizer, but I had committed a bunch of @effects annotations all over this code base.  Erroneously, quite a few functions were violating their contracts, so I removed them.  It had the added benefit of speeding up compile times so I just rolled everything up into the pull request where I was trying to do that already
et viola


Python 3.9.5, module 'asyncio' has no attribute 'iscoroutinefunction'

  File "/home/dvp/.pyenv/versions/3.9.5/envs/map-stp/lib/python3.9/site-packages/click_loguru/__init__.py", line 15, in <module>
    from loguru import logger
  File "/home/dvp/.pyenv/versions/3.9.5/envs/map-stp/lib/python3.9/site-packages/loguru/__init__.py", line 20, in <module>
    logger.add(_sys.stderr)
  File "/home/dvp/.pyenv/versions/3.9.5/envs/map-stp/lib/python3.9/site-packages/loguru/_logger.py", line 778, in add
    wrapped_sink = StreamSink(stream)
  File "/home/dvp/.pyenv/versions/3.9.5/envs/map-stp/lib/python3.9/site-packages/loguru/_simple_sinks.py", line 23, in __init__
    self._completable = asyncio.iscoroutinefunction(getattr(stream, "complete", None))
AttributeError: module 'asyncio' has no attribute 'iscoroutinefunction'

This seems to have been a loguru issue fixed by loguru pull 294.
Passes tests under 3.9.10 and 3.10.2 now.


Clean validation service integration

Description
DIV-1450
Integrates validation service into case-progression service.
Adds a new endpoint /validate that simply returns an OK response with the list of warnings or errors returned by validations service, if any.
Makes the issue callback on /caseprogression/petition-issued call the validation service before attempting to generate a new PDF.
Fixes # (issue)
Type of change
Please delete options that are not relevant.

[x] New feature (non-breaking change which adds functionality)

How Has This Been Tested?
Added and modified unit tests and functional tests.
Tested manually in demo environment (as callbacks can not speak to preview at this moment in time)
Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] Any dependent changes have been merged and published in downstream modules

This is tested and working as Expected. Please refer to JIRA DIV-1450 for more details. Ready to Merge once approved.


Make use of sensitivitites avalable

Hi,
this is a nice project. Thank you for sharing.
One nice feature of CVODE/SUNDIALS is the efficient calculation of the sensitivities (gradients with respect to parameters using a set of extra equations). It would be great if this functionality could also be available via the python interface.
(Or if it is already available the documentation is missing)
best,
lohox

Hi,
I agree, it would indeed be valuable. The lack of it is simply due to time constraints/priorities.