Email as username feature does not work when webapps hosted in a different server

Describe the issue:
When WSO2 IS webapps are hosted on a different server [1], email as username feature [2] does not work properly in the self-registration flow regardless of deployment.toml configurations or adding context-param value in the WEB-INF/web.xml file of the hosted web app.
<context-param>
    <param-name>EnableEmailUserName</param-name>
    <param-value>true</param-value>
</context-param>

In self-registration flow, self-registration-with-verification.jsp file use IdentityManagementServiceUtil.resolveUser method [3][4] to resolve the user. This resolveUser method will eventually use MultitenantUtils.isEmailUserName[5] which will read the EnableEmailUserName property from configurations. However, isEmailUserName does not give priority to web.xml file and always return false.
How to reproduce:

Follow steps in [1] and host webapps on a different server.
Add the following config to deployment.toml

[tenant_mgt]
enable_email_domain= true

Add the following config to WEB-INF/web.xml file of webapps hosted on the different server.

<context-param>
    <param-name>EnableEmailUserName</param-name>
    <param-value>true</param-value>
</context-param>

Try self-registration flow.

Expected behavior:
Email as username should work as expected.
Environment information

Product Version: IS 5.11.0

[1] - https://is.docs.wso2.com/en/latest/develop/hosting-authentication-endpoint-on-a-different-server/#hosting-authentication-endpoint-on-a-different-server
[2] - https://is.docs.wso2.com/en/latest/learn/using-email-address-as-the-username/#using-email-address-as-the-username
[3] - https://github.com/wso2/identity-apps/blob/aaa55e6754f33d14a3f8d6a46bf1542265d8e705/apps/recovery-portal/src/main/webapp/self-registration-with-verification.jsp#L69
[4] - https://github.com/wso2/carbon-identity-framework/blob/b26f147535feca0747208752db7552932d7a9edf/components/identity-mgt/org.wso2.carbon.identity.mgt.endpoint.util/src/main/java/org/wso2/carbon/identity/mgt/endpoint/util/IdentityManagementServiceUtil.java#L250-L266
[5] - https://github.com/wso2/carbon-kernel/blob/d7e842fdf676e2106436868d79f605f5ee001f93/core/org.wso2.carbon.utils/src/main/java/org/wso2/carbon/utils/multitenancy/MultitenantUtils.java#L196-L202

@Yasara-Y Shall we close this issue?


Map.PanLock does not prevent/disable fling

Hello,
Setting MapControl.Map.PanLock = true; does not prevent/disable the map from flinging animation when swiping.
To Reproduce
New empty NET 6.0 Windows app.
XAML:
<wpf:MapControl Name="MyMapControl" />
In window ctor:
MyMapControl.Map = new Map();
MyMapControl.Map.Layers.Add(OpenStreetMap.CreateTileLayer());
MyMapControl.Map.PanLock = true;

Run app. Attempt to pan. No panning as expected. Attempt to fling. Observe map flinged.

(Note that for the GIF I changed mouse cursor for mouse down/up events so it's clear when the mouse is down.)
Using Mapsui.Wpf 4.0.0-beta.5.
I did not see a separate option to disable fling only, so I am assuming this should also be disabling flinging.
After some experimentation I see that MapControl.OnFlinged checks if (e.Handled) return true;, so I technically can do:
MyMapControl.Fling += MyMapControlOnFling;
and
private void MyMapControlOnFling(object? sender, SwipedEventArgs e)
{
    e.Handled = true;
    // or generally, e.Handled = MyMapControl.Map.PanLock;
}

Which does prevent flinging, but seems like a roundabout way of doing this by "manually" consuming the fling event. I am not sure if this is by design.

Thanks for you clear bug report. I can also reproduce it in the PanLock samples (under the Navigation category) when running Mapsui.Samples.Wpf. PanLock should indeed also prevent fling so this is a bug.

This is fixed and will be released in 4.0.0-beta.9.


non-container log files are sendt to the main index

What happened:
After upgrading splunk connect from v1.4.3 to 1.4.6/1.4.7, some logs are sent to the main splunk index.
It seems like the issue is  a missing text replacement in the commit https://github.com/splunk/splunk-connect-for-kubernetes/commit/51b94c2a190ec9f8a3f793f5d4d078f1e776d47b
Line 319 in helm-chart/splunk-connect-for-kubernetes/charts/splunk-kubernetes-logging/templates/configMap.yaml  is using .index = instead of .splunk_index =
What you expected to happen:
The logs should still end up in the specified index
How to reproduce it (as minimally and precisely as possible):
1: Set indexName to anything except from main.
2: install splunk connect  v1.4.7
3: place a file to index at the path /var/log/kube-apiserver/audit.log
Anything else we need to know?:
A PR that shows the exact change have been made here #602
Environment:

Kubernetes version (use kubectl version): 1.19 (Openshift 4.6)
Ruby version (use ruby --version):
OS (e.g: cat /etc/os-release): coreos
Splunk version:
Splunk Connect for Kubernetes helm chart version: 1.4.7
Others:

A pull request that shows the change have been made here #602  (not sure why it failed
)

just rerunning pipeline passed it. merged! Thank you!

@rockb1017 : would it be possible to cut a release that contains this fix any time soon?

sure. i will try to get a release out soon


Externalize themes in independant packages.

In the official .js implementation, any theme installed system-wide that is named jsonresume-theme-.* can be used. Following that behavior could be favorable. It shouldn't be very hard but could ease the management of this project in different ways:

Each official default theme you already wrote in resume_json/templates/ would have its own repository. The cli and themes would be autonomous. But, having them in a requirements.txt file in the cli would still make them available by default.
Original creators of themes may be interested in using the Jinja2 template engine instead of the obsolete Handlebars one in .js.
Other people may be interested in contributing their own theme, which could then be used easily.

That kinda goes against what I wrote #1 and #2, but meh.
The implementation in the cli would rely on using several PackageLoader. But that also means creating new repository for existing themes.
https://github.com/jsonresume/resume-cli/blob/c5d057eba6dda1485d6a207a0bc12935806de414/lib/main.js#L17-L26
That's essentially the official implementation.

I agree that it will be a good idea to implement a way to include other templates by a name convention (or other ways, such as signals or whatever).
On the other hand, I think we should keep at least one theme with the package, that way you don't have to install other themes just to work with the system and it makes it simpler to just check if it works for your use case.
If we implement the theme included in the package the same way we want the theme creators implement their themes it will have even a better way to make sure the theme discovery and theme creation is done on our side the right way, since we use the system as intended by us. Thus, making sure not only the code is working as intended (which should be covered by tests, so might be redundant), but also the documentation and everything else.
So, I suggest that we will keep at least one of the themes in the package, but implement it in the way you suggest and include tests to make sure nothing breaks in the future without us knowing about it beforehand.
The other themes that we decide to move outside of the package we will create a repository for each or all, not sure yet and they will be tested too with the system when relevant (and will be maintained by us).
That way we can benefit from what you are talking about, but with less packages needed to install and hopefully easier maintenance.
Either way, I don't think that this goes against #2 since both features serve different purposes, the flag theme-dir is useful when one wants to create a theme to publish or use her own "home" made theme/template, while the feature your are talking about here is for after publishing the theme, so those are two different use cases :)
What do you think?

the flag theme-dir is useful when one wants to create a theme to publish or use her own "home" made theme/template

Yes, that's true.

I suggest that we will keep at least one of the themes in the package

Yes, OK. This is going gradual process anyway, splitting into several repository and setting up the dependencies will take some time.
How about?

We pick one theme and make it autonomous with it's own repository and make it available through PyPi.
Then, start implementing it into the cli, as a package dependency, but not touching the rest of the templates import systems.

1 sounds good, but not sure what you mean by 2.
After we remove the theme from the package shouldn't we work on importing it automatically if it's on the system and use it when the user want it?
Or you say that we can work on all the other stuff for this but not the import itself until everything else is done?
I guess that the import will not be an easy task either way, so it's logical to postpone it, but we need to know at least if it's on the roadmap for the project

After we remove the theme from the package shouldn't we work on importing it automatically if it's on the system and use it when the user want it?

That's what I meant with 2., yes.

OK, sounds good to me

I've just forked jsonresume-theme-stackoverflow to work on 1.:

We pick one theme and make it autonomous with it's own repository and make it available through PyPi.


Infinite slider

Is it possible to have option which would make the slider infinite? so if there is last slide next slide would be again the first one. Thanks

No, flipsnap.js dosen't have that feature :disappointed_relieved:


User reports not being able to scroll over an embedded web story on mobile

See report: https://wordpress.org/support/topic/some-serious-bugs/
And link for reference: https://kunalparihar.in/what-is-google-web-stories/
I've tested on my mobile and witnessed it happening. In essence, when the web story embed is covering the screen, if you swipe up/down it doesn't scroll the page/screen. That makes it so that the user has to leave the page/site in order to keep navigating.
This is a P0 bug we should fix ASAP. @choumx @spacedmonkey @swissspidy FYI

This is actually easily fixable by the publisher in the Gutenberg editor by changing the size/alignment of the story embed block.
However, we should do two things to provide a more sensible default. The current default size is too wide for most mobile devices (I've seen a lot of unintentional horizontal truncation).

Change default static size 360x600 to 280x500.
Support a new "responsive sizing" mode that preserves 9:16 aspect-ratio with the padding-bottom trick (AMP also uses this for layout=responsive).

Add this as an option to the "Story dimensions" settings section and make it the default (enabling it disables the static size text fields and vice versa).

Responsive sizing is handled in #3581 . If we have responsive embeds, why do have to change the size of the default block help here?

I am also unable to reproduce this on my iPhone. Maybe this is an android issue.
As for default size, the values are spread across the codebase. See.
I think we can add a filter to make it easier for developers to change these values. Maybe adding a filter here.
WordPress also has the idea of content_width. This is a variable defined in the theme, to define how wide the content area. An example this is from a popular WordPress core theme twentyseventeen.  Should the default width me half of content_width. So 600 width would make default 300 width.

This is a known issue in amphtml upstream

The format tracking issue: https://github.com/ampproject/amphtml/issues/28009

Once the fix is out, do we have to do anything on our end, like upload version number of player or does this happen automatically?

If it‘s fixed upstream we don‘t have to do anything on our end

So are their anything we can / should do on our end? If not, maybe close this ticket.

Moved it out of the sprint backlog as it's blocked. No further action needed.

Fixed upstream in https://github.com/ampproject/amphtml/pull/31051 which should roll out early December.

^ FYI @ernee @LuckynaSan


Change performance JSON file format in preparation for #511

Changed documentation and implementation. Old configurations and JSON
files are still supported (i.e. full backwards-compatability).
The second part of the issue of computing fuel backwards has not yet
been implemented, but this change is a prerequisite for that.
See #511

I'd like to have this in 4.0 because it can be interpreted as an API change due to the slightly different file format.
The remaining part of #511 may be implemented for 4.1

sounds good, but I want it currently on hold, because that needs changes on the campaign user setup.
If we want this in 4.0 @jgrooss and @jroettenbacher should tell if that is now doable. ~40 participants have to use an updated file.

discussed in a meeting, changes are backwards compatible


--docstrings option for returning signatures with docstrings

Can use ast.get_docstring(node) for this.
I'd like to show these as double quoted or triple-double-quoted strings.

Some ChatGPT research: https://chat.openai.com/share/f9b4f1d0-cedb-4576-a145-ad3eac345d27
Which helped me by writing this:
def convert_to_quoted(s):
    # Check if the string spans multiple lines
    if "\n" in s:
        # Escape triple double quotes
        s = s.replace('"""', '\\"\\"\\"')
        # Now wrap the whole string into triple double quotes
        return f'"""{s}"""'
    else:
        # Escape double quotes
        s = s.replace('"', '\\"')
        # Now wrap the whole string into double quotes
        return f'"{s}"'

Slight point of confusion: --docstrings causes the docstrings to be displayed, but it shows functions without docsstrings too.
It might be expected to act as a filter, showing only functions with docstrings - for consistency with --function and --class and --async and --untyped and so-on.
Now that I'm trying it out I find myself wanting a way to see "all functions with docstrings" and "all functions without docstrings".
I could do --documented and --undocumented for that.

git diff | llm --system 'describe this change' -m 3.5-16k

The diff command shows the changes made to the files README.md, symbex/cli.py, and symbex/lib.py. Here are the highlights of the changes:
In README.md:

Added two new filtering options: --documented and --undocumented.
Updated the description of the --signatures option to mention the new --docstrings option.
Added an example command to include docstrings in function/class signatures.

In symbex/cli.py:

Added a new --docstrings option as a flag.
Added documented and undocumented as options to the cli function's signature.
Updated the logic to handle the --docstrings option.
Updated the filter function to filter based on documentation presence.
Added an add_docstring function to add docstrings to function/class definitions.

In symbex/lib.py:

Added the add_docstring function to add docstrings to function/class definitions.
Updated the code_for_node function to use add_docstring.
Added a new quoted_string function to escape quotes in docstrings.

In the tests:

Added new tests to verify the --documented and --undocumented filters.
Added a new test to verify the --docstrings option and the inclusion of docstrings in the output.

Overall, these changes enhance the functionality of the symbex tool by providing options to filter based on the presence or absence of docstrings and include docstrings in the function/class signatures.

Documentation at bottom of https://github.com/simonw/symbex/blob/495c377802b4b135ee219601d77a4e525014a4c9/README.md#just-the-signatures

Example:
symbex --docstrings --documented -f symbex/lib.py

# File: symbex/lib.py Line: 12
def find_symbol_nodes(code: str, filename: str, symbols: Iterable[str]) -> List[Tuple[(AST, Optional[str])]]
    "Returns ast Nodes matching symbols"

# File: symbex/lib.py Line: 36
def code_for_node(code: str, node: AST, class_name: str, signatures: bool, docstrings: bool) -> Tuple[(str, int)]
    "Returns the code for a given node"

# File: symbex/lib.py Line: 80
def match(name: str, symbols: Iterable[str]) -> bool
    "Returns True if name matches any of the symbols, resolving wildcards"


Add support for RuntimeVersion Java_17

Feature Request
Support for Java 17 will be great :)

Sorry for mistake, but Java_17 seem to be already available ;)


feat dotnet support

In response to https://github.com/awslabs/cdk-serverless-clamscan/issues/355

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license

Hey! I'm going to close this PR for now as I look into publishing for other languages. For now you should be able to create your own build and use that in your application.

Ok thanks @dontirun


Please provide details or clarity for people looking to use this example for Service Principle Accounts

Well written page. However it would be very helpful if the page addressed the elephant in the room and clearly state whether this type of connection could be used with a Service Principle Account addressing the reqiurement not to prompt the user to log in.
What I am asking for is the following:
"While this code example and text depicts the use of Azure SQL Universal with MFA prompting users with Login, to connect to an Azure SQL DB (for example a Tabular Data Stream connection to Dataverse or Dynamics 365 CE click the following link for a code example."

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

ID: c9c003ac-3e40-845b-844a-63d2e1ee333f
Version Independent ID: dbbc7813-18af-ab68-1016-d51ea75d7645
Content: ActiveDirectoryInteractive connects to SQL - Azure SQL Database
Content Source: azure-sql/database/active-directory-interactive-connect-azure-sql-db.md
Service: sql-database
Sub-service: security
GitHub Login: @GithubMirek
Microsoft Alias: MirekS

@devman2k Thanks for sharing feedback. We are actively validating it. We will share updates soon.

@devman2k Thank you for the feedback. This is being assigned to the content author to evaluate and update as appropriate.

The MFA is an interactive operation and requires user interaction to authenticate with Azure SQL. As far as the service principal approach is concerned this type of connection is not supported. However, the service principal connection w/o user interaction prompting for login, can be established with Azure SQL. For more information see  Azure Active Directory server principals - Azure SQL Database

Sorry I'm confused by your reply. The goal of my comment is to demonstrate in code sample that a Service Principle Connect w/o user interaction can be setup specifically for Azure SQL TDS. Azure SQL TDS is a specialty protocol typically used by Microsoft Dynamics Customer Engagement Developers to access SQL Tables directly via a READ ONLY View.
This method of connectivity is typically made available via Microsoft SQL Server Studio And PowerBI.
However Currently there are no conde samples that demonstrate how a developer could specifically connect to their CRM DB (by any means, for example Azure Function, Logic App or C# console app or plugin.) using a NON_interactive means to their Azure SQL TDS connection point. It is this specifically I am looking to either help you build a working sample or that MS update the document to state this can not be done today.

I do not have such code avaiable although. The closes I ahare is
Create Azure AD users using service principals - Azure SQL Database | Microsoft Docs

Documentation below has the details how all AAD authentication options can be used from C#
https://docs.microsoft.com/en-us/sql/connect/ado-net/sql/azure-active-directory-authentication?view=sql-server-ver16

I think this will work.
`using System;
using Microsoft.Data.SqlClient;
public class Program
{
public static void Main(string[] args)
{
// Use your own server, database, app ID, and secret.
string ConnectionString = @"Server=demo.database.windows.net;     Authentication=Active Directory Service Principal; Database=testdb; User Id=AppId; Password=secret";
    using (SqlConnection conn = new SqlConnection(ConnectionString))

    {
        conn.Open();
        Console.WriteLine("ConnectionString2 succeeded.");
        using (var cmd = new SqlCommand("SELECT @@Version", conn))
        {
            Console.WriteLine("select @@version");
            var result = cmd.ExecuteScalar();
            Console.WriteLine(result.ToString());
        }

    }
    Console.ReadKey();

}

}
`

The section  “Using Active Directory Service Principal” authentication in
Using Azure Active Directory authentication with SqlClient - ADO.NET Provider for SQL Server | Microsoft Docs
documents the connection string used in the C## above for service principals. The code is similar to the one published in the main doc discussed above, except for the connection string that must be updated for a service principal.
#please-close


(fix android) camera permissions request on file upload

Summary
Fix for issue #942 related to issues #573 and #508
Proposed an alternate chooser for the user to select the action on file upload for android in the webview. The issue with the current implementation is that we don't ask the user for Camera permissions if the user selects either ACTION_IMAGE_CAPTURE or ACTION_VIDEO_CAPTURE. This fix would explicitly ask Camera permissions from the user when the user selects to take an image even if they have previously denied it.
Test Plan
What's required for testing (prerequisites)?
Add a <input accepts="image/*" /> field in your DOM and try accessing it from the webview.
What are the steps to reproduce (after prerequisites)?
You should receive a Take a photo... option that on selection would ask camera permission from the user. Look at #942 for current behavior
Compatibility

OS
Implemented

iOS
❌

Android
✅

Checklist

[x] I have tested this on a device and a simulator
[ ] I added the documentation in README.md
[ ] I mentioned this change in CHANGELOG.md
[ ] I updated the typed files (TS and Flow)
[ ] I added a sample use of the API in the example project (example/App.js)

Note: If this approach is agreed upon by the maintainers then I will spend time on fixing the public void startPhotoPickerIntent(ValueCallback<Uri> filePathCallback, String acceptType) (the function that is meant for API level < Lollipop) to use the new implementation. This is not the final version. Wanted to get it out there so maintainers can agree on this solution.

@siddhantbenadikar the initial implementation I did was exactly like yours.
The problem was we couldn't find an elegant way to translate the hard-coded strings you have in native code (Take a photo, Record a video, etc):
Options:

force the consumers to pass the strings that they want to display
create a comprehensive dictionary in native code in multiple languages
2.1. do you read the language from the phone?
2.2. do you let the consumer pass the language which should be used?

All these questions, without a clear and easy answer, led us to the current implementation.

@andreipfeiffer I agree. We need to get find out how to add internalization here. My only concern with the current implementation is that it does not make a request to the user to grant camera permissions. onPermissionRequest should ideally be handling that but for a lot of devs a breakpoint in that function is never hit. I still haven't found out a reason why that is happening, but my guess would be it's got something to do with the different min sdk versions. More details are mentioned in issue #942.

@andreipfeiffer could you think of a solution here. The only way my team and I get around this permission issue is by asking the user for the camera permission on log in. But I would like the permission only to be asked if he decides to use the camera. In our case it is taking a picture for file upload while in the webview

@siddhantbenadikar I'm not an Android dev, but I have discussed this issue with some Android devs.
If you want to capture an image from the camera in your App, you have 2 choices:

implement your own Camera API, using the low-level APIs, where you need to control focus, etc, you need to handle the UI, like buttons, etc ... and ask for permissions, because you App uses the Camera API.

delegate using Intents to another App (like the default Camera app). Another application uses the Camera API, thus needing permissions, of course.

We went with the second approach, because it was easier to implement.
Please tell us what the problem is with the current approach?
Why do you need permissions?
What API level(s) do you have issues with?

@siddhantbenadikar

Do you test this on a simulator? or a real device?
What device is it? brand, api level, etc.
Is the device rooted?
Do you have a default camera app?
Can you take pictures with it, as a standalone app?

@andreipfeiffer
Do you test this on a simulator? or a real device?
Both
What device is it? brand, api level, etc.
Pixel 3 XL (Android 9, Api level 28)
Is the device rooted?
No
Do you have a default camera app?
Yes
Can you take pictures with it, as a standalone app?
Yes

@siddhantbenadikar hmmm, interesting. Just out of curiosity, is it working as expected on a lower API level simulator, like 26/27?
I have a OnePlus 7, also with Android 9, and I just checked an app built with the same package.
I don't have any Camera Permissions on that App, and I'm able to capture the photo.
Can you reproduce the bug with the same device/simulator starting from an empty RN project?
We should determine if this is an issue with:

the library itself
the library in conjunction with other libraries
your project in particular

hi @siddhantbenadikar , may I know why this PR had been closed?


[Bug] OpenAPI swagger.json path is not updated when behind the proxy/APIGW

Describe the bug
When running behind the proxy/APIGW, the swagger.json path is not updated and the swagger UI fails
To Reproduce
Run the microservice behind the proxy with URL remap like that:
Local: http://yourservice:8080
Global: https://api.yourdomain.io/3.14/yourservice/
Expected behavior
Path to the swagger UI is updated so it fetches the API specs from correct path, accessible from outside the API GW.

Just pushed PR #170 that will solve this when using SERVER_NAME to define your external address. LMK if this works for you.

Thanks a lot @ahopkins - this should work (will test next year:) Should be probably a straightforward workaround to detect it dynamically though? Like X-Forwarded-For or whatever?


[docs] JSDoc for pipes

Closes #52

@ggurkal Since it's a quite crucial functionality (the nullable option), I would also add the it in the readme


repositories: add myself as admin to root-signing-staging

We need GitHub Actions Variables in root-signing-staging: Add myself
as admin collaborator to be able to add them.
Fixes #360

cc tsc to merge: @bobcallaway @trevrosen @lukehinds @priyawadhwa


Can't install 5.12

ACF seems to have dropped the patch number from their 5.12 release version string.
The installer validateVersion() function expects a three digit version string.
[UnexpectedValueException]
  The version constraint of advanced-custom-fields/advanced-custom-fields-pro should be exact (with 3 or 4 digits). Invalid version string "5.12"

Hi, This plugin is no longer being maintained. Please have a look at https://github.com/PhilippBaschke/acf-pro-installer/issues/44#issuecomment-734956075 and upgrade your setup.


formContext.data.entity.save not working properly on UUI

When using this method, the UI does not honour the passed in "saveOption" argument.
As a workaround, I had to use the asynchronous version and close the form in the successCallback:
formContext.data.save().then(
function successCallback() {
console.log("Successfully saved.");
formContext.ui.close();
},
function errorCallback(error) {
console.log("Error closing the record.");
if (error) {
console.log(error);
}
});

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

ID: 6ccf32fa-b220-20f6-06d3-bceaeaa363cc
Version Independent ID: 84082a90-697d-6135-45e2-bf14c55ef83e
Content: save (Client API reference) in Dynamics 365 Customer Engagement
Content Source: ce/developer/clientapi/reference/formContext-data-entity/save.md
Service: crm-online
GitHub Login: @KumarVivek
Microsoft Alias: kvivek

I've tried passing in "saveandclose" and the form was saved but not closed.

There are two different functions to save the entity form:

formContext.data.save(saveOptions)
formContext.data.entity.save(saveOption)

First function (which you used in your example) takes an object as an argument. Call would look like this:
// saveMode 2 = save and close
formContext.data.save({ saveMode: 2});

You can specify saveMode property of the saveOptions object, but this call will only pass the save mode to onSave handlers, it won't perform the action specified by the save mode. Therefore, form will not be closed after saving.
Second function takes a string as an argument, and passing "saveandclose" performs save and close in UUI, as expected. A call would look like this:
// This saves and closes the form - in both Web UI and UUI.
formContext.data.entity.save("saveandclose");

saveMode is only for the onSave event. To close you need to use the promise and close it your self. what you are doing is correct

Thanks for your comments. @valdik5379455, I've tested on UUI formContext.data.entity.save("saveandclose"); and it does not close the form.
The same happens when passing in the "saveandnew" argument.

Anyone got a fix for this?
formContext.data.entity.save("saveandclose");
is not working for me, it seems to save, but it won't close the form.
Also (first post), but the account just to try and get this fixed.

@ShirAhn-git  thanks for the feedback. currently there is no known issue with this functionality. if you think this is a product bug please check on dynamics CRM forum or contact your Microsoft contact . some known  reason for this issue are HTML web resource which corrupt the history stack of the browser .

When I tried - formContext.data.entity.save("saveandclose"); UUI is giving me a Dynamics 365 pop-up window with notification "Please wait while saving is completed"
is there a fix available for this issue.

I meet the message  "Please wait while saving is completed" too . How to fix it ?


Typescript error when build

Describe the bug

bootstrap-vue-next version 0.22.7
npm version 9.8.1
node version 20.14.0
typescript version 4.5.5

I can run the serve without issues but when I execute the build it is raising several typescript errors like
 ERROR  Failed to compile with 40 errors                                                                                20:04:19

 error  in node_modules/bootstrap-vue-next/dist/src/composables/useBLinkHelper.d.ts:3:61

TS1139: Type parameter declaration expected.
    1 | import { MaybeRefOrGetter } from 'vue';
    2 |
  > 3 | declare const _default: <T extends Record<string, unknown>, const B extends readonly PropertyKey[]>(props: MaybeRefOrGetter<T>, pickProps?: MaybeRefOrGetter<B | (keyof T)[]>) => {
      |                                                             ^^^^^
    4 |     computedLink: Readonly<import('vue').Ref<boolean>>;
    5 |     computedLinkProps: import('vue').ComputedRef<Pick<{
    6 |         [x: string]: any;

I have checked the tsconfig.json parameters to ensure skipLibCheck was marked as true like it was indicated in an old issue but I have not found why it is not doing the build.
I attach the error.txt and a sample project sample-ui.zip
Thanks for your time
Reproduction
https://github.com/user-attachments/files/16072682/sample-ui.zip
Used Package Manager
npm
Validations

[X] Have tested with the latest version. This is still alpha version and sometime things change rapidly.
[X] Follow our Code of Conduct
[X] Read the Contributing Guide.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A, please open a GitHub Discussion instead.
[X] The provided reproduction is a minimal reproducible of the bug.

Typescript 5 is required


Feature/additional curl options on request

This pull request contains a very simple addition of allowing the use of additional curl options to be set for requests against the twitter api.
Attention: The pull request also contains Code-Style Improvements, therefore it looks far more than it is. The only code-change happening is within performReqeust() (new line 189 and 206).
Why?
Environments are different all around the world and thus the need for specific curl options vary a lot. While the defaults provided are quite sane, they do not cover two of the most commonly known use-cases:

CURLOPT_SSL_VERIFYPEER
CURLOPT_PROXY as well as CURLOPT_PROXYPORT

As there is no way to set these options properly for the single request using the current class and extending the class is a bit annoying (hello privates), we need this way to set the options.
How to use it?
The Union- operator of PHP merges 2 arrays based on their key. See http://php.net/manual/en/language.operators.array.php#86379
This allows us to set additional options in the likes of
$curlOptions = array(
    CURLOPT_SSL_VERIFYPEER => false
);

if (!strstr($_SERVER['HTTP_HOST'], 'your-special-host-that-needs-a-proxy')) {
    $curlOptions[CURLOPT_PROXY]     = 'http://your.proxy:8080';
    $curlOptions[CURLOPT_PROXYPORT] = 8080;
}

$response = $twitter->setGetfield($getfield)
    ->buildOauth($url, $requestMethod)
    ->performRequest(true, $curlOptions);

BC Breaks?
None. A sane default is provided and only has impact if the new - optional - parameter is actively used.
No differences in any PHP Version. One failure on an older HHVM release which can likely be neglected. Whoever uses HHVM updates a lot... See http://3v4l.org/KZBD9

This would've be great, we needed to be able to set CURLOPT_SSL_VERIFYPEER

Yeah, kinda sad to see a non-breaking PR get zero response :(
I can understand if the CS-Fix is unwanted (though not seeing a reason why), but the feature itself has literally zero impact on old code. It's just a massive increase in usability.

I agree on the additional options as they may be useful for some people. The latest update may have caused some conflicts - if you would like to see this implemented, please update the PR and I'll take a look and see if we can get this in.

I'm going to close this for the moment - if anyone would like to pick this up in the future please feel free to comment.


Why is the Azure subscription restricted?

The page states the following requirement:

The Azure subscription containing the data factory and the sink data store must be under the same Azure Active Directory (Azure AD) tenant as Office 365 tenant.

Is this only a temporary design decision during the public preview, or is it final?
I am currently exploring the capabilities and have provisioned a demo Office 365 tenant. Ideally I would like to leverage Azure resources within my Visual Studio subscription benefits, i.e. provision the Data Factory and sink towards this separate Azure subscription.
How can I link these together?

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

ID: fec9b8b8-5003-1234-48f9-a257b82865b7
Version Independent ID: 5fa3334a-4a32-e318-faea-83ebdb840fc3
Content: Copy data from Office 365 using Azure Data Factory (Preview)
Content Source: articles/data-factory/connector-office-365.md
Service: data-factory
GitHub Login: @linda33wj
Microsoft Alias: jingwang

@cveld Thanks for your question. We are checking on this and will respond to you soon.

@linda33wj Can you please have a look at this ?

@linda33wj Any news?

@cveld This restriction is intentional - Office 365 data is a highly valued assets for the organization, and in addition to validating consent at the time of data extraction, we also need to ensure that Office 365 data is not accidentally being copied to another tenant.
In your case, you need to create an Azure subscription inside your demo Office 365 tenant, and then create ADF and sink store in that subscription.
#please-close

Only Microsoft employees can manage issues via commenting in this repo.

Hi,
Our organisation has multiple AAD tenants and as part of the data science team we want to be able to ingest office 365 data from each tenant. Since you've said this is a deliberate restriction, could you please tell us what the "correct" way to go about doing what we want is?
Thanks


ItemShouldTakeDamage hook added

I think it is essential for such hook to be since item entity have health and there no way to make all items or just a part really invulnerable for all or some types of damage without hacks like ent:setHealth(9999999999).
It's named like PlayerShouldTakeDamage and works similarly too.

My only qualm is the naming convention
NS uses camelCase, not PascalCase
Though that's a nitpick that I'll let others discuss
Otherwise, seems like a viable addition

My only qualm is the naming convention NS uses camelCase, not PascalCase Though that's a nitpick that I'll let others discuss
Otherwise, seems like a viable addition

Really camelCase? Search by hook.Run via GitHub search bar inside repository. And...
https://nutscript.miraheze.org/wiki/Category:Hooks

My only qualm is the naming convention NS uses camelCase, not PascalCase Though that's a nitpick that I'll let others discuss
Otherwise, seems like a viable addition

Really camelCase for hooks? Search by hook.Run via GitHub search bar inside repository. And... https://nutscript.miraheze.org/wiki/Category:Hooks

Touché

I don't think adding this hook is a good idea. Simply because it is a duplicate of the EntityTakeDamage hook. With this addition, both hooks will strictly fire under nearly the same conditions. Honestly, I don't think triggering similar hooks just to save an if statement is a good thing for efficiency.

Oh. Really. I forgot about it for some reason. Revert if you want.


Describe how to get G4command.txt

Thanks, well spotted.

Not "spotted". I really had to search for how this can be done :-)


Upgrade fabric8 and jube to 2.0.43.

Refer to this link for build results (access rights to CI server needed):
https://fabric8-ci.fusesource.com/job/fabric8-quickstarts-master-pullreq/339/
Test FAILed.

Refer to this link for build results (access rights to CI server needed):
https://fabric8-ci.fusesource.com/job/fabric8-quickstarts-master-pullreq/347/
Test PASSed.


Debug/Release should not clean one another

The biggest time-sink in my daily work is whenever I trigger a clean build for native (in my case windows) targets. It takes so long for the C++ compiler to churn through my whole project. This makes me extremely reluctant to switch between debug/release modes because I know I'll have to wait through a whole new chug just to get back to incremental compiling for the other mode.
I propose:

Cleanly separate debug/release mode incremental output
Triggering a "clean" build on a new debug/release compile will only clean the respective debug/release directory

This will MASSIVELY speed up my workflow if it could be implemented, and I think it would be equally helpful to other developers.

I have something like that
<app path="bin/debug/" if="debug"/>
<app path="bin/release/" if="release"/>

Well actually i have more configurations so it's
<app path="bin/${myproject_configuration}"/ />

So you're saying if I just do that, everything will be fine?

Generally hxcpp build output is separated by debug/release and switching only has to build the changes. you don't need to clean to switch between them (at least not from hxcpp perspective).
Check your cpp/ folder inside there, you should see the separation something like:

Interesting, I wonder why running "lime test windows -release" when debug output exists seems to clean it, and vice versa.

Using lime rebuild windows -clean used to remove the "obj" directory entirely, now it uses HXCPP's own clean functionality, to allow it to clean only the current architecture being rebuilt.
Using lime build windows -clean, on the other hand, currently cleans the entire build directory, including the "obj" folder as well the "bin" folder. I'm not sure if we should handle it differently when you lime build windows -clean versus lime clean windows, or...

I think the most natural thing for it to do is to clean whatever directory (release or debug) is implied by default when not specifying -debug or -release int he command.

Okay!
So @grisevg's solution worked great. I did this:
<app file="DefendersQuest" path="export/debug" main="com.leveluplabs.defq1.Main" if="debug"/>
<app file="DefendersQuest" path="export/release/" main="com.leveluplabs.defq1.Main" if="release"/>

Is there any reason a setup like this isn't the default project setup? Once it's set it up it should save people a lot of time with unnecessary cleans when they switch back and forth between debug/release mode.

@larsiusprime you can get rid of duplication:
<app file="DefendersQuest" main="com.leveluplabs.defq1.Main" />
<app path="export/debug/"  if="debug"/>
<app path="export/release/" if="release"/>

Neat.

That solves my issue. I think it would be smart to make something like the syntax in @grisevg's comment the default, as it's not immediately obvious how to do that and I think it could save a lot of people compiling time. I just tested it now and it works, switching to "debug" mode in flashdevelop after compiling in release mode does not trigger a clean, this is perfect and now it's very user friendly.

Agreed !
Le 27 févr. 2015 17:50, "Lars Doucet"<EMAIL_ADDRESS>a écrit :

That solves my issue. I think it would be smart to make something like the
syntax in @grisevg https://github.com/grisevg's comment the default, as
it's not immediately obvious how to do that and I think it could save a lot
of people compiling time. I just tested it now and it works, switching to
"debug" mode in flashdevelop after compiling in release mode does not
trigger a clean, this is perfect and now it's very user friendly.
—
Reply to this email directly or view it on GitHub
https://github.com/openfl/lime/issues/353#issuecomment-76427274.

Separating based on the build configuration -- is this something that you guys are interested in, just to handle the "clean" behavior, or are you interested in this in order to preserve two entirely separate "bin" directories?

My first priority is to just avoid the clean trigger, and this seems like the simplest way to accomplish that as all it requires is a small change to the default xml template.

Same as Lars, Default visual studio setup is same too.
Le 27 févr. 2015 19:31, "Lars Doucet"<EMAIL_ADDRESS>a écrit :

My first priority is to just avoid the clean trigger, and this seems like
the simplest way to accomplish that as all it requires is a small change to
the default xml template.
—
Reply to this email directly or view it on GitHub
https://github.com/openfl/lime/issues/353#issuecomment-76446414.

+1 for this to be default behavior

I dunno, but @grisevg 's solution does not work for me while the follow worked:
<set name="BUILD_DIR" value="export/debug/" if="debug" />
<set name="BUILD_DIR" value="export/release/" if="release" />

Both methods provided don't work for me. Is it a version thing (using 2.4.4 from haxelib) or does where you put those lines matter?

We could use debug and release (+ final) subdirs in $Export\os\target\ directly in the tools maybe.

+1 for that!
Tiago Ling Alexandre
Tel: +55 41 8819-3191
2016-06-05 10:20 GMT-03:00 Valentin Lemière<EMAIL_ADDRESS>
We could use debug and release (+ final) subdirs in $Export\os\target
directly in the tools maybe.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/openfl/lime/issues/353#issuecomment-223812748, or mute
the thread
https://github.com/notifications/unsubscribe/ABis3uWxfYr5rJgk7gXm7OCTRobeYT24ks5qIs01gaJpZM4DltyE
.

Couldn't test all the targets, so hopefully this didn't add any bugs.


Login Using Phone No

User can also login using Phone No and it will be verified when the user will get otp in his registered phone no.

@aritra-tech Understand .
It will be more relevant.
Add phone login system .. and that will also take user name , email id.
But here Email id is not mandatory .


str field max_length constraint panics on Unicode characters

Initial Checks

[X] I confirm that I'm using Pydantic V2 installed directly from the main branch, or equivalent

Description
The new implementation with rust has broken the unicode handling, this is how the rust behaves when using max_length:
pydantic_core._pydantic_core.ValidationErrorthread '<unnamed>' panicked at 'byte index 28 is not a char boundary; it is inside 'а' (bytes 27..29) of `'ааааааааааааааааааааааааа'`', src/errors/validation_exception.rs:384:13
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
: <exception str() failed>

Example Code
from pydantic import BaseModel, Field

class Example(BaseModel):
    field1: str | None = Field(default=None, max_length=32)

Example(field1='а'*25) # Russian letter

Python, Pydantic & OS Version
pydantic version: 2.0.2
pydantic-core version: 2.1.2 release build profile
python version: 3.10.7 (v3.10.7:6cc6b13308, Sep  5 2022, 14:02:52) [Clang 13.0.0 (clang-13<IP_ADDRESS>)]
platform: macOS-13.2.1-arm64-arm-64bit
optional deps. installed: ['typing-extensions']

Selected Assignee: @lig

I think you can split it to:

max_length (O(1) - string.len())
max_char_length (O(n) - string.chars().count())

I wasn't able to reproduce the crash in Pydantic either. Nevertheless, I'm fixing the unicode length handling.


Release notes and documentation update changes for HDInsight Job SDK 2.0.0 preview

@azuresdkci retest this please


Am stuck with this code on freecodecamp.org

<ing src="https://cdn.freecodecamp.org/curriculum/cat-photo-app/lasagna.jpg” alt=“A slice of lasagna on a plate.”>

Hi @silentg39377 !
It doesn't look like you have described what the issue is.
I am going to go ahead and close this issue.
But if you need help with a freeCodeCamp challenge, please post your question in the freeCodeCamp forum with a detailed description of the issue with your code and link to the challenge so people can best assist you 👍
https://forum.freecodecamp.org/


Update information for LGI (Lowdham Grange)

Since the 1st of August HMP Lowdham Grange (a Cat B prison with a capacity of just under 1000 adult males) transitioned from being privately operated to being a publicly operated prison.  Background on the reasoning for the transition can be found here.
The information in the prison register needs to be updated. Specifically:

contracted = false
operators = PSP

Updated 👍


 This PR tests and fixes the case.

Awesome! Thanks @bdaylik !
would you sign our contributor agreement? https://prediction.io/cla
Thanks

@k4hoo Just did!
Thanks

Thank! BTW, looks like the email you used for git commit is not linked to your github account

Thanks, that was my corporate mail. Its linked now :)
On Wed, May 13, 2015 at 10:04 PM, Kenneth Chan<EMAIL_ADDRESS>wrote:

Thank! BTW, looks like the email you used for git commit is not linked to
your github account
—
Reply to this email directly or view it on GitHub
https://github.com/PredictionIO/template-scala-parallel-similarproduct/pull/4#issuecomment-101778782
.


docs[srs-8]: Complete scope of the product

Contains:
The Product Boundary
The Product Use Case (PUC) Summary Table
The Individual Product Use Cases

Ill fix the pdf to display things properly
as for the other use cases I had them but didnt know if i should add them but I agree with what you've said
Ill add them and let you know


when the orig channel ends end ext media channel

untested, should work hopefully
code was copied from a proper bridge in ARI with multiple
participants. This is a one on one call so we can say
when the original channel ends, end the external media
channel which will then cause the bridge to be destroyed
closes #1

I just tested it and all seems to work now. I am now also able to get the transcripts in!
This update can be merge to the master branch.
Thanks for the help!
PS are you using the nodjes/ari-bridge from asterisk as a reference? As i can not find many information on this.

That's great news! And I've built enough ARI applications I reuse code between projects


[Bug]: Header logo not functional

Is there an existing issue for this?

[X] I have searched the existing issues

Describe the bug
The header logo shows no functionality on home page.
Expected behavior
It should take the user back to top.
Add ScreenShots

On which device are you experiencing this bug?
Windows
Record

[X] I have read the Contributing Guidelines
[X] I'm a GSSOC'24 contributor
[X] I have starred the repository

Please assign this issue to me for gssoc-extd. I'd be really grateful..

@HarshS16 its functional, please open another issue if you have anything in mind


Issue#1586: Out of stack when calling super..apply

Bytecode 'LdHomeObjProto' missing for super..apply() calls.
Fix by adding missing bytecode.

https://github.com/Microsoft/ChakraCore/issues/1586

@Microsoft/chakra-es @mrkmarron, could you take a look pls?

Ping

:shipit:


Sitronix CF1133 support

Hi,
I have project use Sitronix CF1133.
How can I port this driver to support on CF1133?
Thanks
Phat

Hi @user-redans,
Thank you for your question. However, as indicated in the CONTRIBUTING.md, such support requests should be rather summitted to the ST Community. There you will hopefully find the answers you are looking for.
Please allow me to close this thread. Thank you for your comprehension.
With regards,


assertRedirect > assert3xx

Excellent! r+wc

Awesome, lots of work and cleanups, I like that! r+wc


Tabletop becoming obsolete :-(

So what exactly is Google doing to make Tabletop obsolete? Is there really no hope that it can be revived after the changes?
I've played with Papa Parse, but it is limited to one sheet. I love that Tabletop can pull multiple sheets into one JSON object.
Thank you,
Nate

There are a lot of sheet ---> JSON projects around, are they all going to break? That's why I'm wondering exactly what Google is doing that is causing breakage.

Any idea about when it will become obsolete ?

I believe they'll start turning off the V3 API in May, and then by September it all shuts down? Not sure where I read it, but that's what I remember offhand.
The issue is that the new version of their API requires you to use OAuth to log in to do pretty much anything, so we're kinda stuck with something that works from the "publish as CSV" angle. I haven't played around with it too much other than getting the Papa Parse example up and running, so if anyone has other ideas or approaches I'm all ears and happy to update the README and examples.

Here are the details: https://cloud.google.com/blog/products/g-suite/migrate-your-apps-use-latest-sheets-api

A note that Papa Parse is not limited to one sheet, either using the current README solution, or the solution that overrides the CORS issues that I offered at https://github.com/jsoma/tabletop/issues/189#issuecomment-650199344
In the latter solution you specify the worksheet name, as before. In the former solution (which seemed to break early this week--for at least two of us) you add gid= to the URL and add the appropriate sheet id. Also, in the provided solution, you use the Publish ID, and in the one I provided in issue #189 you use the regular worksheet ID. I'm now accessing four sheets from one worksheet with speeds I haven't seen before. And updates seem to happen without much caching delay, as well.
I don't know if the solution I offer is going to cost money. The Google Sheet API v4 does impose limits. (Time will tell, I guess. I couldn't actually figure out how to calculate what I'll be charged. My guess is: not much.)

I think that it's important to note that while @mroswell has a nice and elegant solution in  https://github.com/jsoma/tabletop/issues/189#issuecomment-650199344 (I'm not even sure it requires Papa Parse since it returns a simple well-formed JSON object), this is probably not a good idea for public facing projects. Or at least it's something that people should consider carefully before choosing to implement.
The purpose of an API key is that it is a key that you hold and keep protected, just like the key to your house or your car. Ideally it should be hidden behind a backend that proxies requests between your client and whatever service you're ingesting so that you have some level of control over who is using it. If you put it in your client facing code, anyone can see it and use it for their own purposes. I've already verified this by searching for repos that use this method posted above, pulling the key, and using it to download my own spreadsheets.
If you do decide to proceed, know that Google does not allow you to cap billing. This is by design. The best you can do is set up alerts when you reach a threshold. Be prepared to react quickly if you get a billing notification. Also, don't commit code that has the API key in it. And if you can, set a referer on any keys you make. None of those things can stop bad people from stealing your keys, but they might slow down the damage a little when it does happen.

Oh heck! This API key security issue comes very close to being a killer for my project.
I recently built this web app that displays maps  (using MapBox) with a pin for displaying data from each row of a GSheet - a kind of replacement for Fusion Tables. Then a couple of weeks later it broke when Google changed the CORS policy for accessing their API.
So I was delighted to see @mroswell nice solution. I have re-engineered my web app to use that and it's working fine again.
But my aim is to offer the app as a tool for all to use and of course as a web app it is simply a JS script with everything including the API key exposed.
I guess the only option I have is to restrict my own Google API key to the domains of websites that I manage or control and to offer a public version of the app that requires as a parameter a different Google API key that is the responsibility of the using organisation (and they would be advised to restrict the key to domains they manage or control). Of course the API keys will still be exposed, but if they're restricted to trusted domains they should be safe from abuse - right?

@jwhazel the code I posted in comment #189 returns an object, but result.values is an array of arrays.

@georgio8

I guess the only option I have is to restrict my own Google API key to the domains of websites that I manage or control and to offer a public version of the app that requires as a parameter a different Google API key that is the responsibility of the using organisation (and they would be advised to restrict the key to domains they manage or control). Of course the API keys will still be exposed, but if they're restricted to trusted domains they should be safe from abuse - right?

Yes and no. Forcing a trusted domain will stop folks from stealing your key and also using it client side. This is of course better than nothing. It can't stop folks from using it server side and spoofing the referer header.
I'm not saying that the client side solution using the key should be taken off the table, just that I think there needs to be a big disclaimer in bold faced print somewhere so people understand the implications of doing it this way. I'm a big fan Tabletop and have been using it for ~10 years now. I plan on using this api key client side for private applications and in build steps where exposing the key has no real consequence. For public facing apps I'm not sure what I'll be doing yet but likely some form of server side code that hides the key and caches the response to an S3 bucket or something.
@mroswell

jwhazel the code I posted in comment #189 returns an object, but result.values is an array of arrays.

What I'm saying is that you don't need Papa Parse or jQuery or any other library for this. It's just an array of arrays in the response. So if you pull the raw data like this let rawData = await fetch(endpoint).then((res) => res.json());, then a simple couple of lines vanilla JS will give you an associative array:
  let headers = rawData.values.shift();
  let data = json.values.map((row) => {
    return row.map((val, i) => {
      return { [headers[i]]: val };
    });
  });

If you want something besides a simple key:value pair, you can modify that loop however you want. But the point is it doesn't require any external libraries.

The migration deadline was pushed back to January 26, 2021.
https://cloud.google.com/blog/products/g-suite/migrate-your-apps-use-latest-sheets-api


Keyboard don't dismiss on widgets inside showDialog

I've an issue using showDialog and focus. I could replicate the problem and I know when it happens.
Ok

Error

This is the code to reproduce the issue (like the image above)
import 'package:flutter/material.dart';

void main() => runApp(DemoApp());

class DemoApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Center(
        child: DialogTest(),
      ),
    );
  }
}

class DialogTest extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: FlatButton(
          color: Colors.blue,
          child: Text('Launch dialog'),
          onPressed: () => _launchInDialog(context),
        ),
      ),
    );
  }

  void _launchInDialog(BuildContext context) async {
    await showDialog(
      context: context,
      builder: (context) {
        return AlertDialog(
          title: Text('Dialog test'),
          content: SizedBox(
            height: MediaQuery.of(context).size.height / 3,
            child: Content(),
          ),
          actions: [
            FlatButton(
              child: Text('Ok'),
              onPressed: () {
                Navigator.of(context).pop();
              },
            ),
          ],
        );
      },
    );
  }
}

class Content extends StatelessWidget {
  final FocusNode _nodeText1 = FocusNode();

  @override
  Widget build(BuildContext context) {
    return Center(
      child: Container(
        padding: const EdgeInsets.all(15.0),
        child: Column(
            crossAxisAlignment: CrossAxisAlignment.stretch,
            mainAxisSize: MainAxisSize.min,
            children: <Widget>[
              TextField(
                focusNode: _nodeText1,
                keyboardType: TextInputType.text,
              ),
            ]),
      ),
    );
  }
}

In order to fix the issue we have these options:

Comment this line  focusNode: _nodeText1, and don't set the focusNode.
Or Change Content widget from StatelessWidget to StatefulWidget , it works even if you set the focusNode.

** Notice this only happens using showDialog, it works fine using the code below (event if you use focusNode in StatelessWidget).
void main() => runApp(DemoApp());

class DemoApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Center(
        child: ScaffoldTest(),
      ),
    );
  }
}

class ScaffoldTest extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Content(),
      ),
    );
  }
}

Flutter doctor
[✓] Flutter (Channel stable, v1.9.1+hotfix.6, on Mac OS X 10.14.6 18G95, locale en-PE)
[✓] Xcode - develop for iOS and macOS (Xcode 11.2.1)

Hi @diegoveloper
using the code you share I experience the behavior you described,
although I suspect that the issue might be that the  FocusNode
being in a different BuildContext  than the AlertDialog

works
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) => MaterialApp(
      home: HomePage(),
  );
}

class HomePage extends StatelessWidget {
  static final FocusNode _node = FocusNode();

  @override
  Widget build(BuildContext context) => Scaffold(
    body: Center(
      child: FlatButton(
        color: Colors.blue,
        child: Text('Launch dialog'),
        onPressed: () => showDialog(
          context: context,
          builder: (context) => AlertDialog(
            title: Text('Dialog test'),
            content: SizedBox(
              height: MediaQuery.of(context).size.height / 3,
              child: Center(
                child: Container(
                  padding: const EdgeInsets.all(15.0),
                  child: Column(
                    crossAxisAlignment: CrossAxisAlignment.stretch,
                    mainAxisSize: MainAxisSize.min,
                    children: <Widget>[
                      TextField(
                        focusNode: _node,
                        keyboardType: TextInputType.text,
                      ),
                    ],),),),),
            actions: [
              FlatButton(
                child: Text('Ok'),
                onPressed: () => Navigator.of(context).pop(),
              ),
            ],
  ),),),),);
}

also works
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) => MaterialApp(
      home: HomePage(),
  );
}

class HomePage extends StatelessWidget {
  static final FocusNode _node = FocusNode();
  @override
  Widget build(BuildContext context) => Scaffold(
    body: Center(
      child: FlatButton(
        color: Colors.blue,
        child: Text('Launch dialog'),
        onPressed: () => _showDialog(context, _node),
      ),
  ),);
}

 void _showDialog(BuildContext context, FocusNode node) async => showDialog(
    context: context,
    builder: (BuildContext context) => AlertDialog(
      title: Text('Dialog test'),
      content: SizedBox(
        height: MediaQuery.of(context).size.height / 3,
        child: Content(node: node,),
      ),
      actions: [
        FlatButton(
          child: Text('Ok'),
          onPressed: () => Navigator.of(context).pop(),
        ),
      ],
  ),);

class Content extends StatelessWidget {
  final FocusNode node;
  Content({this.node});

  @override
  Widget build(BuildContext context)=> Center(
    child: Container(
      padding: const EdgeInsets.all(15.0),
      child: Column(
        crossAxisAlignment: CrossAxisAlignment.stretch,
        mainAxisSize: MainAxisSize.min,
        children: <Widget>[
          TextField(
            //focusNode: _nodeText1,
            keyboardType: TextInputType.text,
          ),
        ],
  ),),);
}

Does one of this solution solve the issue for you?
Thank you

I didn't try your code yet but I guess it should work, the issue was it was working before (I don't remember the flutter version exactly),  and why it is working changing from Stateless to Stateful?

There is no bug here. This is working as intended. Your stateless widget is getting built again when the keyboard appears and it's getting a new FocusNode each time.
If you are going to hold state like your own FocusNode then put it in a StatefulWidget solves it and also not specifying one because then TextField will create it own. Both of these are suggested solutions.

But the issue is with the native keyboard, I'm not doing anything with the focusNode, I just set it, Why is disrupting the normal keyboard behavior?

Hi @diegoveloper
I agree with @slightfoot
I don't see a bug here, as you noticed
in your code the issue appears when the FocusNode is present
(when you comment it out work as intended),
forgive my simplification, but essentially the keyboard doesn't pop
because doesn't find the node in your code:
class Content extends StatelessWidget {
  final FocusNode _nodeText1 = FocusNode();

please look at the example I made for you.
thank you

And why this is working?
void main() => runApp(DemoApp());

class DemoApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Center(
        child: ScaffoldTest(),
      ),
    );
  }
}

class ScaffoldTest extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Content(),
      ),
    );
  }
}

Content widget Stateless and using focusNode.

And why this is working?

void main() => runApp(DemoApp());

class DemoApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Center(
        child: ScaffoldTest(),
      ),
    );
  }
}

class ScaffoldTest extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Content(),
      ),
    );
  }
}

Content widget Stateless and using focusNode.

Please follow the example that have been provided,
are you still experiencing the issue following the indication that have been provided?
thank you

ok I'll use StatefulWidget in case I want to use focusNode. Thanks


20 -Fix create about us page

@firity
you have files conflicts i about-us.html and stylee.css if you can check them
today with a branch I worked in I fixed some code is all of the pages html files so your branch is backdated


updated subscription deletion docs to include cancellation first

#sign-off

@adimitui: I'm sorry - only the author of this article, @curtand, addimitu, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.

@adimitui: I'm sorry - only the author of this article, @curtand, adimitui, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.

#sign-off

@adimitui: I'm sorry - only the author of this article, @curtand;adimitui, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.

#sign-off


Board Review: Introducing Purview's Scanning Service

Thank you for starting the process for approval of the client library for your Azure service.  Thorough review of your client library ensures that your APIs are consistent with the guidelines and the consumers of your client library have a consistently good experience when using Azure.
The Architecture Board reviews Track 2 libraries only. If your library does not meet this requirement, please reach out to Architecture Board before creating the issue.
Please reference our review process guidelines to understand what is being asked for in the issue template.
Before submitting, ensure you adjust the title of the issue appropriately.
Note that the required material must be included before a meeting can be scheduled.
Contacts and Timeline

Service team responsible for the client library:
Main contacts:
Parv Saxena<EMAIL_ADDRESS>Justin Dellamore<EMAIL_ADDRESS>(EM) Ivy Liu<EMAIL_ADDRESS>(PM) Vishal Anil<EMAIL_ADDRESS>Expected GA date for this library:

About the Service

Link to documentation introducing/describing the service:https://docs.microsoft.com/en-us/azure/purview/
Link to the service REST APIs: https://github.com/parvsaxena/azure-rest-api-specs-pr/tree/pasaxena/purview-scanning-service/specification/purview/data-plane/Microsoft.Purview/preview/2018-12-01-preview
Is the goal to release a Public Preview, Private Preview, or GA? Public Preview (The service went into Public Preview on Dec 3rd, 2020)

About the client library

Name of client library: Purview's Scanning Service
Link to library reference documentation:https://docs.microsoft.com/en-us/azure/purview/
Is there an existing SDK library? If yes, provide link:

Step 1: Champion Scenarios
Ultimately the library should be easy to use for common scenarios that developers want. Consider the following questions when thinking about champion scenarios:

What is the app the developer is building that uses your client library?
Who is the end-user of the application (the developer's customer)?
What features of the API need to be explained in the sample so that someone could use this API in real app?
How does the authentication workflow look?

See Champion Scenario section here.
Code is appreciated but optional. Pseudocode is fine.

Champion scenario 1

Link to library’s sample folder:

Champion scenario 2

Link to library’s sample folder:

…
Champion scenario n

Link to library’s sample folder:

Step 2: Quickstart Samples (Optional)
Include samples demonstrating how to consume the client library if available:

Create a new resource
Read the resource
Modify the resource
Delete the resource
Error handling
Handling race conditions/concurrency issues

Thank you for your submission!

scheduled 1/7

scheduled 1/7

Recording[MS INTERNAL ONLY]

Recording[MS INTERNAL ONLY]


Make bufsize adjustable

cpython uses copyfileobj under the hood for fast copies but the default buffer size is quite low which increases the amount of time in python code when copying the sqlite database. As this is the usually the bulk of the backup, increasing the buffer can help reduce the backup time quite a bit
related:
In testing (non encrypted) improvement was at least as good as https://github.com/python/cpython/issues/71386

thanks


"window.reese84 is undefined" when logging in

I'm using latest exec.
As soon as I enter email and password, a message pops in red "window.reese84 is undefined". See hereby screenshot, and Console logs.
Uncaught (in promise) TypeError: window.reese84 is undefined
authenticate index.js:117
w vuex.esm.js:851
dispatch vuex.esm.js:516
dispatch vuex.esm.js:406
submit Login.vue:90
submit Login.vue:1
VueJS 3
https://pixheb.ovh/images/a4a40a8a21bd2cf08a185fc1e1122f8d.png

Adding a message to notice that https://f1tokenx.deta.dev/ displays now "Service No Longer Available"

yep, deta is now down. i'm considering deploying elsewhere

Is this a component that we could also self-host? Is the source code for what used to be running on deta publicly available?

Maybe config file to place the token in or a token login field.
Token can be extracted here > https://github.com/SoMuchForSubtlety/f1viewer/wiki/Getting-your-subscription-token

At a second glance, it looks like that deta instance was proxying requests to https://api.formula1.com/6657193977244c13...

Is this a component that we could also self-host? Is the source code for what used to be running on deta publicly available?
Essentially, I guess what I'm asking is, is there a way for us to host everything on our own servers so we don't have to rely on third-party services?

Yep, that's planned, but I'm pretty busy previously but the all-in-one thing should work before next GP

Music to my ears, thanks mate.
I have hacked together something and it's working for today.
If it's of any help to anyone else, this is what I have running on a domain from freedns to rewrite the URL and a couple of headers.
from flask import Flask, request
from flask_cors import CORS
import requests
import logging
import sys

app = Flask(__name__)
CORS(app)

API_HOST="https://api.formula1.com/6657193977244c13?d=account.formula1.com"

@app.route('/6657193977244c13', methods=["GET"])
def getjs():
    return requests.get("https://api.formula1.com/6657193977244c13").text

@app.route('/6657193977244c13', methods=["POST"])
def rewrite():
    app.logger.debug(request.headers)
    headers = {k:v for k,v in request.headers if k.lower() != 'host'}
    headers['Origin'] = "https://account.formula1.com"
    headers['Referer'] = "https://account.formula1.com/"
    res = requests.request(
        method          = "POST",
        url             = API_HOST,
        headers         = headers,
        data            = request.get_data(),
        cookies         = request.cookies,
        allow_redirects = False,
    )
    return res.text, res.status_code

if __name__ == "__main__":
    app.run()

I'm sure it's doable in express & node-fetch but I couldn't get the raw data from a request in time for the GP today so I just did it in python Flask which I'm much more comfortable with!

for quick fix:
just built a version which is using api endpoint deployed at vercel.
https://github.com/iebb/F1WebViewer-SelfHosted/releases/tag/v0.2.1
check this, it should work
@Arcegis @christovic @s0fax @FelixSFD

Niiiiiice thanks @iebb ! I will deploy that after this GP and report back 🤞

Hello, I can confirm that, as of today, the message pops up once again.
Beside, f1-api.jeb.nom.za gives a NS_ERROR_UNKNOWN_HOST response. I suppose that the API you use is now EoL...

christovic's Script above works, when you self host the F1-Web-Viewer and the Script.
I have now configured both into an alpine container, hung caddy with ssl cert in front, then I was able to sign in and watch warm-up show.
Python and the modules flask, flask_cors and requests are required to run the script.
The following variable is required to build F1-Web-Viewer with current nodejs
export NODE_OPTIONS=--openssl-legacy-provider
and the Public/index.html must be adjusted in line 13 with your domain.

I ended up writing my own F1 viewer that handles the login process a bit smoother than this one, but it's not as feature rich. Super simple static page - it's a bit lighter on resources and just automatically loads and plays the live GP if there is one.
In this, I ended up writing a reese84 handler in golang, dropping here too if it is useful for anyone else:
func reeseHandler(w http.ResponseWriter, r *http.Request) {
	if r.Method == "GET" {
		resp, err := http.Get("https://api.formula1.com/6657193977244c13")
		if err != nil {
			upstreamF1TVApiError(err, w)
			return
		}
		body, err := io.ReadAll(resp.Body)
		if err != nil {
			upstreamF1TVApiError(err, w)
			return
		}
		w.Write(body)
	} else if r.Method == "POST" {
		proxyReq, err := http.NewRequest(r.Method, "https://api.formula1.com/6657193977244c13?d=account.formula1.com", r.Body)

		if err != nil {
			http.Error(w, "Error creating proxy request", http.StatusInternalServerError)
			return
		}

		for name, values := range r.Header {
			for _, value := range values {
				proxyReq.Header.Add(name, value)
			}
		}
		proxyReq.Header.Add("Origin", "https://account.formula1.com")
		proxyReq.Header.Add("Referer", "https://account.formula1.com")
		resp, err := http.DefaultClient.Do(proxyReq)

		if err != nil {
			upstreamF1TVApiError(err, w)
			return
		}

		upstreamBody, err := io.ReadAll(resp.Body)

		if err != nil {
			upstreamF1TVApiError(err, w)
			return
		}

		w.Write(upstreamBody)
	}
}

func upstreamF1TVApiError(err error, w http.ResponseWriter) {
	log.Println(err)
	http.Error(w, "Error from api.formula1.com", http.StatusBadGateway)
}


Fix repository description

A scripting langauge to do HTTP routines. -> A scripting language to do HTTP routines.


Error while compiling: node-sass command not found

Hello,
It is compiling properly but the error messages are still appearing.

Hey!
When this error message occurs, my package does not compile any SASS file. Do you use any other SASS compiler in Atom?
To fix that problem, you should have a look at the option Path to node-sass command. It's the last the option on the options page. Set it to /usr/local/bin and then it should work.
But with latest version, Atom should ask you for fixing that problem automatically. Which version of sass-autocompile do you use?

Hey Armin,
I am definitely using the latest version of Atom. I even got the prompt you are talking about that automatically populates the field and even tried debugging the issue by searching online. The solution that keeps coming up is the one you just mentioned but it did not no good.
In short, the issue is occurring with our without this fix.
Regards,
Omar

On Dec 15, 2015, at 5:06 AM, Armin Pfäffle<EMAIL_ADDRESS>wrote:
Hey!
When this error message occurs, my package does not compile any SASS file. Do you use any other SASS compiler in Atom?
To fix that problem, you should have a look at the option Path to node-sass command https://github.com/armin-pfaeffle/sass-autocompile#path-to-node-sass-command. It's the last the option on the options page. Set it to /usr/local/bin and then it should work.
But with latest version, Atom should ask you for fixing that problem automatically. Which version of sass-autocompile do you use?
—
Reply to this email directly or view it on GitHub https://github.com/armin-pfaeffle/sass-autocompile/issues/42#issuecomment-164710951.

I meant the latest version of my package ;)
Are you sure you only use my package for compiling SASS? Because I don't think that my package compiles your SASS file and throws this error message.
Another hint is the "undefined" part in the error message, I overlooked until now. Can you post your options here? Something seems to be really strange here...
Have you tried to uninstall and reinstall my package?

Hey Armin,
Yeah you are absolutely correct. I had another complier called “sass-autocompile” [see screenshot]. After disabling it (and then uninstalling), the error no longer appears.
Really sorry for wasting your time! Do I need to do anything to close out the bug? This is embarrassingly my first time actually opening a ticket.
Omar

On Dec 15, 2015, at 10:59 AM, Armin Pfäffle<EMAIL_ADDRESS>wrote:
I meant the latest version of my package ;)
Are you sure you only use my package for compiling SASS? Because I don't think that my package compiles your SASS file and throws this error message.
Another hint is the "undefined" part in the error message, I overlooked until now. Can you post your options here? Something seems to be really strange here...
Have you tried to uninstall and reinstall my package?
—
Reply to this email directly or view it on GitHub https://github.com/armin-pfaeffle/sass-autocompile/issues/42#issuecomment-164807472.

Hey! No problem! Great to hear, that everything works now as expected.
You can close this ticket when you login to GitHub and open this issue. I will close it so you do no have to do that.


[Batch Mode] [WIP] Rdar 42314665 demangle and more

Fix for batch mode cancelling all primaries + refactoring.

@swift-ci please test

@jrose-apple Suggest you look at this commit-by-commit. I believe that the batch mod bug this addresses would have been much less likely had I pushed the had-error functionality up into  DiagnosticConsumer, so better late than never, I did it here. But, I did it as a separate commit, so you can see the transformations. Also, I hope to get the mangle/demangle fix in first as its own PR. Had to include it here for testing. Anyway, take an initial look and let me know what you think. Tx.

Build failed
Swift Test Linux Platform
Git Sha - d7d10bc730a74e8b63b4fa0dc113e4627b2fed40

Build failed
Swift Test OS X Platform
Git Sha - d7d10bc730a74e8b63b4fa0dc113e4627b2fed40

@jrose-apple Thanks for taking a look at this and giving me exactly the sort of initial feedback I was looking for. I'll think about each point and respond here or else maybe offline.

Yes, I agree about the test case. I'm parallelizing that with getting to a code change that is acceptable to both of us.

Some of my statements here turned out to be wrong. After offline discussion, will close this PR and proceed in a better way to fix the problems.


Validate input serialize multiple value

Hi,
How I should validate a serialized multiple value (multiple[]=1st, multiple[]=2nd) because if I use
$app->input()->post('multiple', TYPE_RAW);
return null.
Thanks.

This is indeed not available yet, but you’re right in that we should definitely add it.
By the way, TYPE_RAW is probably not what you want. So you may want TYPE_STRING or something else instead.
Could you try something like the following?
// $key = 'multiple';
// $type = \TYPE_STRING;

$data = !empty($_POST[$key]) && \is_array($_POST[$key]) ? $_POST[$key] : [];

foreach ($data as $key => $value) {
    $data[$key] = $app->input()->value($value, $type);
}

Does that work? If it does, we could certainly implement it as a convenient wrapper so that you would be able to call
$app->input()->postArray('multiple', TYPE_STRING);

in the future.

Thanks, it was just a segnalation but was not sure if I was missed something.
It's not so important there are different turnaround for fix but just because your framework is really well done should to be implemented.
Good this
$app->input()->postArray('multiple', TYPE_STRING);
Thanks again I don't know if you wanna this post as reminder by the way for me can be closed.

Thanks!
Let’s leave this open here until it’s implemented.
Please try the code above and see if it works for your use case when you find the time.


implement read/unread in service and client

Not exactly what's in the new design doc but I'll update this to new design in a separate PR.
r? @mmaxim @patrickxb @maxtaco Thanks!

👍 after CI green (Circle is currently broken).


Set timeout for Download

Fixes https://github.com/gradle/gradle-private/issues/3032
Previously timeout is not set for Download, which might
cause infinite waiting.

@bot-gradle test this

@bot-gradle test this

OK, I've already triggered ReadyForMerge build for you.

@bot-gradle test this

OK, I've already triggered ReadyForMerge build for you.

@bot-gradle test this

OK, I've already triggered ReadyForMerge build for you.

@bot-gradle test this

@bot-gradle test this

OK, I've already triggered ReadyForMerge build for you.

OK, I've already triggered ReadyForMerge build for you.


urlencode mongo password

@timemachine3030 Do you know if there is an alternate way of passing credentials?

@jenssegers Hey, so by a coincidence I was having credential problems and I stumbled upon this ticket. I had a @ in my password that caused a problem (see password parameter here: http://uk3.php.net/manual/en/mongoclient.construct.php) I know this is deprecated but it seems the problem persists in the newer driver.
The new manager seems to still accept the same parameters (or at least the credentials)
So to answer the question you asked @timemachine3030 yes, there is an alternative way to pass the credentials, even other parameters.
I've have made some changes locally and am willing to put up a pull request but we might want to expand the parameters. What are your thoughts on this?
See the diff of the change I've made so far: diff.txt

If that works, please send the PR!

Actually, silly old me (only actually started using your project today) this is already possible.
See: https://github.com/rjvandoesburg/laravel-mongodb/commit/eaf2b8f1fdd297f2cd612c437cc2d18724746306
By adding the credentials to options in the config they are automatically passed as extra options in the MongoDB constructor :)
However this change will cause problems when people update because the config needs to be updated.


[Feature]: Creating custom 404 not found page for the website

Describe the feature
we can change it like we can add some images or gifs
Add ScreenShots

Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I'm a VSOC'24(Vinayasa Summer of Code) contributor
[X] I want to work on this issue

I can make a simple static 404-error page for this website.
Kindly assign this issue to me @RamakrushnaBiswal

@RamakrushnaBiswal go ahead!


can't build with certificate >= 1.2

Per discussion on #20, I tried building github with certificate-1.2, but http-conduit-1.2.6 requires certificate < 1.2, and bumping the constraint in the github.cabal file to:
http-conduit >= <IP_ADDRESS> && < 1.4.2

causes the following build failure:
Github/Private.hs:75:16:
    Couldn't match expected type `resourcet-0.3.2:Control.Monad.Trans.Resource.ResourceT
                                    IO'
                with actual type `IO'
    Expected type: Request
                     (resourcet-0.3.2:Control.Monad.Trans.Resource.ResourceT IO)
      Actual type: Request IO
    In the first argument of `getResponse', namely `authRequest'
    In the first argument of `(>>=)', namely `getResponse authRequest'
cabal: Error: some packages failed to install:
github-<IP_ADDRESS> failed during the building phase. The exception was:
ExitFailure 1

This is obsolete, I guess?


Add cron as orchestrator plugin

Migrated from GitLab: https://gitlab.com/meltano/meltano/-/issues/3522
Originally created by @alxthm on 2022-05-24 14:54:47

For simple meltano deployments, it would be great to have a cron-based orchestrator using the meltano schedule configuration, without having to set-up an Airflow instance with a db, users, etc.
The meltano UI already makes it possible to manually run meltano schedules, so this would be a nice complement :smile:

@pandemicsyn would https://github.com/meltano/meltano/issues/5962 resolve this issue? I think it would, since it could essentially do what I suggested here: https://gitlab.com/meltano/meltano/-/issues/3522#note_962685280. Though I'm not sure about having Meltano itself edit the user's crontab, rather than Meltano printing the crontab lines to stdout.

Yep, i think https://github.com/meltano/meltano/issues/5962 would solve this. I'd probably lean toward not using user crontab entries and generating meltano cron file that can be dropped in /etc/cron.d but that seems like a user preferences thing and controllable through a cron export plugin config.

Based on your input, I made a small python script to transform meltano schedules (both job and elt schedule, in json format) into a crontab file:
https://gist.github.com/alxthm/b62eceb1e47f0320e5bd82a67f33e042
I am currently using it this way:
meltano schedule list --format=json | python make_crontab.py >crontab.file
crontab crontab.file

It relies on a CRONTAB_MELTANO_EXECUTABLE environment variable to specify the path to meltano (in case it is not in the crontab PATH).
Happy if it can help (and open to feedback if you have any ofc).

meltano invoke cron-util schedule
meltano invoke cron-util deschedule

The pattern ideally would also work for:

AWS Cloudwatch Events (could drive step functions or ECS executions)

I don't know if it will be out of scope for this feature request, but it might be valuable to have an option to integrate with cron / dead man's switch tools like https://healthchecks.io/.
It might also be valuable for setups based on the proposal at #5962.
The simplest way I can think of would be to add a way to have an option for an extra command that will be be added to the cron entry.
So instead of generating
0 0 * * * (cd /project && meltano run ...) 2>&1 | /usr/bin/logger -t meltano

meltano generates the following cron
0 0 * * * (cd /project && meltano run ...) 2>&1 | /usr/bin/logger -t meltano && <user defined command here>

Brain dump about the cron utility extension:
cron-ext commands:
meltano invoke cron [list] # List the Meltano schedule cron entries
meltano invoke cron install [schedule UUID...] # Install the Meltano schedule cron entries into the current user's crontab
meltano invoke cron uninstall [schedule UUID...] -a --all # Uninstall the Meltano schedule cron entries from the current user's crontab

Template cron entry:
cron_entry = f"{interval} (cd {meltano_project_dir} && export PATH={path} {venv_export} && {command}) 2>&1 | /usr/bin/logger -t meltano # <UUID>"

meltano_project_dir will be determined by traversing up the directory tree until meltano.yml
is found. Because this extension can only be invoked using meltano invoke, we should always be
able to find meltano.yml in this way.
Each Meltano cron entry should have an inline comment with a UUID identifying the schedule entry. This will allow for its updating/removal later on. Cron does not permit in-line comments, but in practice they work fine because they're treated as part of the command, which is passed into the shell, which ignores everything after the #.
If running as root, we could drop the entries into /etc/cron.d/meltano. Note that the filename used within /etc/cron.d/ must not contain a ., and must be owned as root. Excerpt from the cron man pages:

[...] the files under these directories have to be pass some sanity checks including the following: be executable, be owned by root, not be writable by group or other and, if symlinks, point to files owned by root. Additionally, the file names must conform to the filename requirements of run-parts: they must be entirely made up of letters, digits and can only contain the special signs underscores ('_') and hyphens ('-'). Any file that does not conform to these requirements will not be executed by run-parts. For example, any file containing dots will be ignored. This is done to prevent cron from running any of the files that are left by the Debian package management system when handling files in /etc/cron.d/ as configuration files (i.e. files ending in .dpkg-dist, .dpkg-orig, and .dpkg-new).

If not running as root, we should install it as a user crontab using the crontab command:
subprocess.run(('crontab', '-'), input='new crontab content (will overwrite old content)')

For consistency and simplicity, we can probably get by with just the crontab approach. Using crontab for root instead of /etc/cron.d is unusual, but acceptable.
The Meltano crontab entries should have a header and footer that allows this extension to identify it, thereby preventing the extension from messing up other entries in the user crontab. If the header/footer is found, we should operate within it. Otherwise we should append a new Meltano section to the crontab.
----- BEGIN MELTANO CRONTAB SECTION -----
entry 1
entry 2
...
----- END MELTANO CRONTAB SECTION -----

Install/uninstall should install/uninstall all schedules listed by meltano schedule list by default, but can install specific ones if provide their UUIDs. If install finds an existing cron entry with a matching UUID, then it will be replaced by the new one. Otherwise the new one is appended within the Meltano section of the crontab. If uninstall is provided the -a/--all flag, it should uninstall all cron entries in the Meltano section of the crontab, rather than only those listed by meltano schedule list.
Because we may have to share a crontab with other entries (if not running as root), we cannot set environment variables for the whole crontab, nor can we depend on them having been set in any particular way. Notably this means that the command in each cron entry may be executed by any shell by default.
We will want to get around this issue by explicitly running each entry with /bin/sh (or maybe /bin/bash if there is a good enough reason to use it), and by exporting the env vars for each entry prior to running its commands. Env vars that should be exported (and written into the crontab) include:

PATH
VIRTUAL_ENV (optional - only export if $VIRTUAL_ENV is set)

With those set it should be the case that simply running meltano from the shell being used by cron runs meltano in whatever Python envrionment it was run in when this plugin was run.
Each cron entry command is going to be very long using the above approach, and quoting the command properly may be tricky. Putting the command content into a file is a common approach to keep it clean, but that introduces some additional issues. Notably, we need somewhere to store these files. With /etc/cron.d it's easy because we could make a subdirectory to put them in, and use the strict name rules to prevent cron from looking inside for crontabs, but we don't have access to /etc/cron.d when not running as root. Maybe we can use the .meltano directory in the project to store them (under a cron subdirectory).

@aaronsteers - Note to self, review above ☝
@edgarrmondragon, @pandemicsyn - fyi above for discussion/review.

I, personally, would have preferred we not actually attempt to install/manage per user crontab's and just printed out the entries instead (because I think that might be more friendly when folks are deploying this via ansible/salt/etc), but I think if we're going to actually install and manage user crontab entries then what @WillDaSilva laid out seems solid 🤘

For consistency and simplicity, we can probably get by with just the crontab approach. Using crontab for root instead of /etc/cron.d is unusual, but acceptable.

Big +1. not a huge fan of our behavior being very different for these two paths. I'd also rather we be consistent and predictable and use the per user crontab entries across the board.

Maybe we can use the .meltano directory in the project to store them (under a cron subdirectory).
If install finds an existing cron entry with a matching UUID, then it will be replaced by the new one.

This should probably replace the cron entry AND that wrapping script (incase it got deleted?).
Definitely not required, but might be nice if list flags orphaned entries or entries that are missing their wrapping script or vice-versa - and need to be re-installed (or maybe a dedicated "fix" command?).

Not sure what you mean by "wrapping script" here.

@WillDaSilva I meant these:

Putting the command content into a file is a common approach to keep it clean, but that introduces some additional issues. Notably, we need somewhere to store these files.

Looks like we'll be forced into putting the command and env vars into a script, and managing that. The maximum length for a cron command is 999 characters.

We probaly want to break the "begin/end Meltano section" blocks in the crontab up by project. We can use the project ID in the header and footer comments.
Additionally, inline comments with the schedule ID are no longer required, as we can identify the schedules in the crontab based off of which script they're calling. The script path is <project directory>/.meltano/cron-ext/<schedule UUID>.sh.

@aaronsteers @pandemicsyn I've created https://github.com/meltano/cron-ext, and opened https://github.com/meltano/cron-ext/pull/1
The license for the repository is currently MIT. Is that suitable, or should it be Apache-2.0 instead?
We can start to use that repository to track features/bugs/issues for the cron extension going forwards. For instance, multi-project support by putting the project ID in the section header and footer is probably worth pulling into its own issue.

@pandemicsyn @aaronsteers My proposal (and current implementation) relies on each schedule having an associated UUID. Currently schedules provided by Meltano do not have any unique identifier. I see 3 options we can take:

The schedule name is "supposed to be" unique. Although in practice, not everything will complain if a schedule with a duplicate name is found:
(melty-3.8) ➜  rundev meltano schedule add yetanothertest --job trackertest --interval="@hourly"
2022-09-08T22:50:41.907628Z [info     ] Environment 'dev' is active
Schedule 'yetanothertest' already exists.

The most likely way to end up with a dupe is if someone manually edits the yaml. If we encounter a dupe we should raise an error.
Even without that, I'm not sure you strictly speaking - need a UUID. Could hash some subset of the schedule fields.

The license for the repository is currently MIT. Is that suitable, or should it be Apache-2.0 instead?

I'll defer to @aaronsteers for that but fwiw - i think most of the other repo's are Apache licensed.

Just circling back here. MIT and Apache 2.0 are both okay. Apache 2.0 is indeed preferred.


[yanks] Document yanks for #716

This is blocked on https://github.com/rustsec/advisory-db/pull/1837.


docstring update

PR Description
Please describe the changes proposed in the pull request:

docstrings cleanup for fill_direction, fill_empty, update_where

This PR relates to #972 .

PR Checklist

Please ensure that you have done the following:

[ ] PR in from a fork off your branch. Do not PR from <your_username>:dev, but rather from <your_username>:<feature-branch_name>.

[ ] If you're not on the contributors list, add yourself to AUTHORS.md.

[ ] Add a line to CHANGELOG.md under the latest version header (i.e. the one that is "on deck") describing the contribution.

Do use some discretion here; if there are multiple PRs that are related, keep them in a single line.

Automatic checks
There will be automatic checks run on the PR. These include:

Building a preview of the docs on Netlify
Automatically linting the code
Making sure the code is documented
Making sure that all tests are passed
Making sure that code coverage doesn't go down.

Relevant Reviewers

Please tag maintainers to review.

@ericmjl

🚀 Deployed on https://deploy-preview-1100--pyjanitor.netlify.app

@ericmjl / @thatlittleboy @pyjanitor-devs/core-devs pls what am I missing regarding the docs build; the preview is not changing to reflect the latest updates

@ericmjl / @thatlittleboy @pyjanitor-devs/core-devs pls what am I missing regarding the docs build; the preview is not changing to reflect the latest updates

@samukweku The link for this PR https://deploy-preview-1100--pyjanitor.netlify.app/ contains the latest updates as far as I can see.

thanks @thatlittleboy the issue is from my end then!

We don't have to worry about codecov, it's being wonky again lol.

Approving! It's a nice and small and self-contained update. Thank you, @samukweku!

I'll keep this in mind going forward 😀


Why set label -1-149 rather than 0-150?

I noticed  line149 in dataset.py :
batch_segms = batch_segms - 1 # label from -1 to 149.
Could someone tell me why set label -1-149 rather than 0-150?Thank you a lot.

It doesn't matter at all. It's like I can't explain why OpenCV uses BRG while PIL uses RGB.


ie7 input type password can not use

ie10

ie7

can you fiex this bug?

I have push a pull request #259 which fixes this error. In China, nearly 5% of the people use IE compatible mode (IE 7). And, it's easy to fix it. Use prop instead of attr method in this line
@noinlijin You can see my repository https://github.com/Alex1990/jquery-placeholder which fixed other errors. Then, download the source file (unminified). Hope to help you.

@Alex1990 I saw your PR (haven't had a chance to test it). Can you create a new one that solely fixes this issue?

@noinlijin I have merged @Alex1990 PR. Can you check out the latest version of the plugin (v2.1.2) and test to see if your issue is solved? Please do report back. Thanks.

thanks