Settle mismatch between k8s approach to templating + Tekton approach

Expected Behavior
Kubernetes was intentionally designed to not provide templating capabilities because templating makes configuration harder to understand and reason about (see this Kubernetes design proposal for more details).
Plus providing “templating” functionality implies the possibility of significant additional functionality beyond just variable replacement, which we want to avoid adding at the level of Tekton types.
Actual Behavior
Tekton Pipelines currently provides a variety of templating for Tasks and Pipelines, and has plans to expand the scope (for step images, for paths to mounted PipelineResources). The reason for this is to provide a way for a Task’s contextual information to be used when defining the Task.
For example:
- image: gcr.io/example-builders/build-example
  command: ["echo"]
  args: ["${inputs.resources.params.pathToDockerFile}"]

In templating you can use values from:

Attributes of input and output resources
Params

You can apply these to:

Step arguments
Names of volumes and volumeMounts

Additional Info
The most promising solution so far is  to make this experience better align with the k8s syntax, which requires defining environment variables for every value that can be “templated”.
In this solution we could inject the environment variables for all exportable values and users could use the $() syntax to access the values, e.g.:
    - image: gcr.io/example-builders/build-example
      command: ["echo"]
      args: ["$(inputs_resources_params_pathtodockerfile)"]

As an added “bonus”, users could also use this syntax to template with any of their own defined environment variables also.
See this design doc for more details and alternative proposals

What if the build-example image always gets mounted in a copy of all resources and params? Then it could read whatever it wanted out of that. If you wanted to parameterize what it read out of that, you'd use args: ["inputs.resources.params.pathToDockerFile"]
Your example in full would be
- image: gcr.io/example-builders/build-example
  command: "jq"
  args: ["/resources", ".params.pathToDockerFile"]

(incedentally, I think I like better not specifying args and command, and just having the image know what to do by reading /resources) in general.

The most promising solution so far is to make this experience better align with the k8s syntax, which requires defining environment variables for every value that can be “templated”.

I am def +1 on using the $(thing) syntax at a minimum.

In this solution we could inject the environment variables for all exportable values and users could use the $() syntax to access the values, e.g.:

Another option that is thematically similar but different in terms of implementation would be allow using a jsonpath-like syntax (similar to addressing fields of a pod via downward API) to address fields within a resource, and then generate literal values in the taskrun controller*.

caveat: we wouldn't want to leak escalating information like basic auth password or auth token from cluster resource this way, so would need to account for which fields are escalating and consume those correctly via secrets.

Quick update here, we are leaning currently toward solution 1 or solution 1b.
In both of these solutions we would initially at least switch to the $(thing) syntax.

Oh and thanks to @vdemeester we want to start calling this feature "variable interpolation" instead of templating ;)

Tekton going forward, as of last week's working group meeting, is following the template style of K8S, which can be interpreted as specifically avoiding a few things called out in the K8S community document here: https://github.com/kubernetes/community/blob/master/contributors/design-proposals/architecture/declarative-application-management.md
2/3rds of that K8S document may easily apply directly to how Tekton will want to pursue templates and reuse of items. I am trying to find exceptions to the rules I have found in that document, though I have none currently. Everything that can be expressed with a template within our API/controller could instead be pre-processed outside of Tekton's view and applied as API calls to Tekton.
In fact, if following a couple of the models for apply -f/ apply -k/ and merging YAML/JSON in a way transparent to K8S, there is a chance to additionally unroll patches and recover original values if desired - though that is not going to be required for now.
Tekton may avoid templating most forms of variable interpolation at the API layer for Tekton.
This will also mean avoiding creating any objects named "XYZTemplate" and/or "XYZTemplateType" in favor of allowing external tools to be chosen by a developer for generating the API calls/YAML/JSON files.
I propose any templating options be pushed to a CLI wrapper layer that makes the user experience for Tekton nicer, though leaves the controllers and API simpler for Tekton itself. (or tutorials that include Jinja/et al as a tool for manipulation)
So, I think I am not going too far out there to state: Let us not add too many intelligent forms of template logic into the controllers.
It may be argued that Pipelines and PipelineRuns also follow a similar template logic (PipelineRun is just providing a patch of values over the Pipeline template)
It follows to me that Tekton can be simpler and still achieve its goals. What to consider for removal? Anything performing variable interpolation/variable substitution that the user could have provided directly instead. Additionally, most other items that might be interpolated can potentially be generated and turned into a full API call/fully filled out YAML/filled out JSON. If not, then the extra state can be considered exposed via ConfigMap, Secret, or creating a resource/file/envvar for ingestion further along (each with different implications for debugging).
Filed an issue in Triggers as well for consideration. May file a small set of issues that refer to this issue in the near future to show a few practical implications of removing these templating and interpolation concepts from the controllers.
As far as variable interpolation itself is concerned, I believe it falls into the same set of issues as a DSL. There are many competing algorithms for interpolation.
Separately, providing a plethora of named parameters is directly discussed in the K8S community spec in this area referred to as parameterization. The design takes a negative approach to injecting named parameters in general vs. providing ConfigMaps, resources, or other debuggable separate pieces: https://github.com/kubernetes/community/blob/master/contributors/design-proposals/architecture/declarative-application-management.md#what-about-parameterization Tekton may also want to avoid adding too many bespoke dotted string names (or too many underscore_separated_names) that give deferred determination of concrete values, if convinced of other arguments in that document

"Less Template, More Tekton" proposal https://docs.google.com/document/d/11QWLYPP-yj_K_ghQqHr3LFonFE9bfHwtooYq6qPhn8w/edit

As discussed in our working group, for now we will go ahead with solution #1b which replaces the ${} syntax with $(). If in the future we want to continue to explore more changes like:

Adding env var injection (solution 1)
"Less Template, More Tekton"

We should do this in a new issue.
(I'll create a new issue for 2 to track it!)

Created #1169 to continue the Less Template, More Tekton discussion!


Add scope authorization check

It would be nice to easily determine whether or not the user has granted access to the specified scopes post-login via GoogleUser.hasGrantedScopes. Perhaps this boolean could be passed to the login callback / resolve?

@namoscato Good idea. Approved. Please provide a PR ✌🏼


Add EVP_PKEY_meth setter and getter for digestsign and digestverify

Added EVP_PKEY_meth_set_digestsignverify() and EVP_PKEY_meth_get_digestsignverify()
Ran make tests and make doc-nits.
Everything passed.

Branch 1.1.1 accepts only bug-fixes at current stage. This should go into master branch.

Please note that I have two email addresses associated with this account<EMAIL_ADDRESS>is the one that is on file for the CLA. Therefore, you can waive the cla-check failure.

Branch 1.1.1 accepts only bug-fixes at current stage. This should go into master branch.

oops...ok.  Will submit to master.

BUT ... if making things opaque means that code broke, then adding these kinds of things is treated as a bug.

BUT ... if making things opaque means that code broke, then adding these kinds of things is treated as a bug.

So in 1.0.2 there was no digestsign and digestverify and as such, nothing could be broken. So... I think this is some kind of weird edge case.  I'll keep it closed for now.

By the way, I'm really impressed with the responsiveness here.  Thank you very much.

Looks like a missing accessor to me so could be eligible for 1.1.1.

Please note that I have two email addresses associated with this account<EMAIL_ADDRESS>is the one that is on file for the CLA.

Please could you send an updated CLA listing all the email addresses you are likely to use for submissions? This helps us to keep our paper trail complete.

See #10388


Per suite canvas elements in console view

Browsers seem to impose limits on the size of the canvas element and therefore the test<->output arcs don't render when showing a lot of tests in the console view. We might want to switch to per-suite canvas elements, or do it only if the canvas size limit is exceeded.

Milestone for 2.0.0? Won't be possible for 1.0.0? This is a showstopper for Lucene, for example.

I wouldn't call it a show stopper, it's just missing fancy arcs in the expanded console view (which is not the default), while highlighting is still there to show the connection :-)

But the fancy arcs are so freaking cool! :)))

In HEAD.


Configurable core.Page field verbose labels

Issue Summary
Currently, the fields on the promote tab come from the wagtail.core.models.Page fields
    seo_title = models.CharField(
        verbose_name=_("page title"),
        max_length=255,
        blank=True,
        help_text=_("Optional. 'Search Engine Friendly' title. This will appear at the top of the browser window.")
    )
    search_description = models.TextField(verbose_name=_('search description'), blank=True)

These are hard-coded, and hard to overwrite other than by subclassing Page and monkey-patching those properties.
A blanket change would be bad for backwards-compatibility reasons. However, we could consider instead adding the optional settings PAGE_SEO_TITLE_VERBOSE_NAME and PAGE_SEARCH_DESCRIPTION_VERBOSE_NAME, which would default to the current values.
I'm happy to prepare a pull request for this, but didn't want to put the time in without suggesting it first.

@nimasmi just a suggestion - one other way to update these would be via JS on the client side, a bit messy but maybe simpler than monkey patching the core model.
Other than a setting, how would you propose we can provide this override to devs?
Another (potentially a bit complex) idea would be to use a custom translation file for your installation;

https://docs.djangoproject.com/en/2.1/topics/i18n/translation/#localization-how-to-create-language-files

We will bring this up at the next Wagtail core team meeting and give some feedback, thanks for being happy to do a PR.

@nimasmi just another way to update these verbose names would be by supplying your own translation file. From the Django docs:

When several applications provide different versions of the same resource (template, static file, management command, translation), the application listed first in INSTALLED_APPS has precedence.

Source: https://docs.djangoproject.com/en/2.1/ref/settings/#std:setting-INSTALLED_APPS (last paragraph).
All you have to do is make sure your app comes first in INSTALLED_APPS and add your translation file containing the msgid you'd like to override. An English translation file should work too.
Since this is the Django documented way of customising translations, I would say this issue should be closed. Could you please confirm my suggestion works for you?

@allcaps That sounds undesirable, as changing the name of these fields shouldn't behave in the same way as a translation, which would be a blanket rewording of a phrase for a particular audience only.
Let's imagine I wanted to emphasise for editors that this title was to appear in the HTML title tag, and will feature in search engine results and browser tabs, so I rename "page title" to "title tag". As I understand it, that would mean:

it would be impossible to use the English words 'page title' verbatim in a translatable string, as the translation file would always swap it for 'title tag'.
other languages which provided a translation file for 'page title' would miss out on that change.

For context, this particular change has been requested by SEO-focused colleagues who work with Wagtail, and want to help editors to get their sites to perform well.

Valid points.
If we create a configurable property on Wagtail models, there will be a migration created in Wagtail which is undesirable.
Might be better to have field_panel accept a verbose_name and help_text property.
OR
Let Wagtail pass around a form. It is possible to override form field properties in the Form init. Just like you would do in Django. But this requires Wagtail to handle forms. At the moment Wagtail field_panel has references to the model. Not a form. So this would be a major refactor.

a migration created in Wagtail which is undesirable

Fair enough.

have field_panel accept a verbose_name and help_text property

This sounds closer to what @lb- suggested, too.
The major refactor is a downside, but in the long run letting FieldPanel take a form kwarg might make its behaviour similar to the way you can optionally specify a form for a Django Admin class, or django.views.generic.UpdateView.
Failing that, I like the idea of just permitting passing some form-like arguments to FieldPanel.

I will have a bit of a look at a POC of either adding some kwargs to FieldPanel or see if there is a simpler way to get towards this goal, also we will chat about this with the core team to see if there are other ideas.

I've got a dirty workaround. It involves overwriting a Wagtail template. Dirty, but again, workaround.
Create a template tag:
def get_heading(field_panel):
    """Replace header value for HomePage"""
    if field_panel.model is HomePage and getattr(field_panel, 'field_name', None) == 'title':
        return _('Title tag')
    return field_panel.heading

Override the object_list.html template by copying that file from Wagtail to: yourapp/templates/wagtailadmin/edit_handlers/object_list.html and replace {{ child.heading }} with {{ child|get_heading }}. Load your template tags {% load some_tags %}.

I have a workaround, too—the internal project on which I want to make this change already subclasses the Page model, and uses that custom model everywhere. There I can make this change by setting the fields' widget attributes in the model's __init__() method. The reason for opening this GitHub issue was because I felt that such a change would benefit the Wagtail project as a whole.
If there isn't really the appetite for this, then I am content to fix locally, and close this issue.
I still think that a change to FieldPanel would be a net improvement, though.

I still think that a change to FieldPanel would be a net improvement, though.

I think so too.

@nimasmi thanks so much for creating this issue and responding quickly to the suggestions and discussions.
We had a bit of a chat about this at the last Wagtail core member meeting and for now feel that it would be best to get FieldPanel to accept a label or heading kwarg. While this is not the whole solution it is a practical start.
We will close this issue for now and see if we can get some traction on #4471


New page not added to browser.pages() immediately

const link = await page.$('selector')
await link.click()    // at this time, a new page was successful opened in a new tab in chromium

// get all page
let pages = await browser.pages()
for (const page of pages) {
    console.log(page.url())   // new page not appear at here
}

// get all pages again
pages = await browser.pages()
for (const page of pages) {
    console.log(page.url())   // new page now appear!
}

Puppeteer version: 1.0.0
OS: Mac 10.13.2
Node.js version: 9.5.0

I think there may be race condition here. Maybe listening for 'targetcreated' can help.

thanks for @vsemozhetbyt's suggestion, I listened targetcreated event and find some oddly phenomenon.
My code procedure is:

Go to www.sogou.com and type java as search word and then press search button
When search results arrived, click each of them, every link was opened in a new tab in chromium as expected.

But I found only those links which under sogou.com could trigger a targetcreated event. the other link such as
http://www.runoob.com/java/java-tutorial.html and
http://www.51zxw.net/list.aspx?cid=380
could not, and not included in browser.pages()
When i call browser.pages() again, those links appears but targetcreated event  never triggered

I'm having a similar issue. I'm trying to wait for a popup to appear in a new window, and verify that the contents are correct. In my JavaScript,
const newPagePromise = new Promise(x => browser.on('targetCreated', target => x(target.page())));
await page.click("#bReport"); //Makes popup
await newPagePromise; //Hangs here
In the website, the button is rigged to call
var report=window.open("","Schedule","menubar=0,scrollbars=1,resizable=1");
before adding html via an AJAX call.
Although I can see the popup when running in non-headless mode, the promise never resolves. Am I doing something wrong, or is this a bug?

I believe I am also having this issue.

Everybody: if you're having this issue, please upvote it. We heavily rely on issue likes when picking the next thing to work on.

我也遇到了这样的问题，browser.pages()获取不到一些指定的page 比如说出现了隐私设置错误的界面时 他是不会被包含在pages对象里面的

encountering same issue. Click triggered pages not being captured by the browser instance.

A simple solution is: just wait 500ms.
    const timeout = ms => new Promise(resolve => setTimeout(resolve, ms));
    element.click()
    await Promise.race([
      await timeout(500),
      this.page.waitForNavigation({
        waitUntil: 'networkidle2',
      }),
    ]);

我也遇到了这样的问题，browser.pages()获取不到一些指定的page 比如说出现了隐私设置错误的界面时 他是不会被包含在pages对象里面的

You can disable the error of HTTPS.
    this.browser = puppeteer.launch({
      ignoreHTTPSErrors: true,
      ....
    });

One workaround is to have waitForTarget
const link = await page.$('selector')
await link.click()    // at this time, a new page was successful opened in a new tab in chromium

const newPage = await browser.waitForTarget(target => target.ur() === link.textContent());

// get all pages
pages = await browser.pages()
for (const page of pages) {
    console.log(page.url())   // new page now appear!
}

I am also having this issue.

In 2024, this error still appear.


Fix: #550 added constructor to initialize HttpClient using Gson by default

Pull Request
Related issue
Fixes #550
What does this PR do?

added more constructors to support JsonHandler
API stays backwards compatible

bors merge


[gklib] Fix share path case.

In https://github.com/microsoft/vcpkg/pull/26020 I forgot to apply @ras0219 's over the shoulder review comment to change the directory name to all lowercase.

-- Installing: /mnt/vcpkg-ci/packages/gklib_x64-linux/share/gklib/GKlibTargets.cmake
-- Installing: /mnt/vcpkg-ci/packages/gklib_x64-linux/share/gklib/GKlibTargets-release.cmake

Should also modify vcpkg_cmake_config_fixup(PACKAGE_NAME GKlib) to vcpkg_cmake_config_fixup(PACKAGE_NAME gklib)

Should also modify vcpkg_cmake_config_fixup(PACKAGE_NAME GKlib) to vcpkg_cmake_config_fixup(PACKAGE_NAME gklib) or just remove the parameter.

PACKAGE_NAME is not needed at all here. The default is ${PORT}.

Note that the wrong package name breaks x64-linux. Windows doesn't fail because of its case-insensitive file system.


TransitionalStyle not applied correctly

If a component has a TransitionalStyle and is not displayed when the style changes, the style is incorrect when the component is displayed again.
It seems that when the component is displayed, the lambda is executed correctly once, but the style is not applied. My wild guess is that a revalidate() is missing in swingtree.style.StyleInstaller#_applyDimensionalityStyleTo, but I'm not familiar with the code.
It is a bit hard to explain, but I will push example that makes it clear.

If a component has a TransitionalStyle and is not displayed

Ok, so let me give you some overarching background information to give you a picture:
So I have the suspicion that this is probably based on the fundamental problem
that Swing does not really give SwinTree a clean place and time where to
hook into and update itself irrespective of the component state.
There are 4 places where we currently hook into the update cycle of
a component to trigger all of the Styler lambda stuff and ultimately the StylerInstaller.

A custom implementation of the Border interface
A custom implementation of the ComponentUI interface.
The paintComponent(Graphics) method (native SwingTree components only)
The paintChildren(Graphics) method (native SwingTree components only)

The first one is the StyleAndAnimationBorder, it renders the border layer and
also delegates to any former border of the component.
For some components SwingTree has custom ComponentUI implementations
(see DynamicLaF in the StyleInstaller).
And the last two places are found in implementations of the StylableComponent interface
usually the ones declared in the UI class.
So for example:
    /** {inheritDoc} */
    public static class Slider extends JSlider implements StylableComponent {
        @Override public void paintComponent(Graphics g){ paintBackground(g, super::paintComponent); }
        @Override public void paintChildren(Graphics g) { paintForeground(g, super::paintChildren); }
        @Override public void setUISilently( ComponentUI ui ) { this.ui = ui; }
    }

SwingTree works well with any of these hooks. A single one is enough to
trigger an update for the whole styling stuff to take affect...
The problem with all of these hooks however is that they are at the mercy of the
public void paint(Graphics g) method of the JComponent.
This is what orchestrates calls to the formerly mentioned places...
But this method may not decide to continue its execution in all cases
    public void paint(Graphics g) {
        boolean shouldClearPaintFlags = false;

        if ((getWidth() <= 0) || (getHeight() <= 0)) {
            return;
        }
        [...]
        [...]
    }

This is why you will encounter the following condition in the AnimationRunner:
if ( component.getParent() == null || (component.getWidth() <= 0) || (component.getHeight() <= 0) ) {
    ComponentExtension.from((JComponent) component).gatherApplyAndInstallStyle(false);
    component.revalidate();
    component.repaint();
}

So the first problem you outline might be because somewhere in the
Swing code it checks if JComponent::isVisible is true and then just returns
without ever triggering a paint cycle (which makes total sense! But it is unfortunate for
the SwingTree logic).
So from having done debugging before, my assumption is that maybe the above condition
should also check for the visibility of the component. But this is just a guess.

It seems that when the component is displayed, the lambda is executed correctly once, but the style is not applied. My wild guess is that a revalidate() is missing in swingtree.style.StyleInstaller#_applyDimensionalityStyleTo, but I'm not familiar with the code.

No this is unexpected and I would assume the layout manager to react to the size changes
automatically. At least, that is what the assumption is in the StylerInstaller code.
So you might be right that there is indeed a revalidate() missing there.
But we should be careful with these statements in there, because there is a danger of
triggering repeated repaint/revalidate cycles...

Maybe invalidate() is enough?

What exactly is the issue you are facing here in terms of a scenario.
How can I reproduce this?

If you have two panels with a transitional style based on a the same property (a foldable panel) placed in different tabs.
.withTransitionalStyle(isOpen, LifeTime.of(0.5, TimeUnit.SECONDS), (status, style) -> {
    double h = style.component().getPreferredSize().height * status.fadeIn();
    style.component().setBackground( h == 0 ? Color.orange : Color.lightGray);
    System.out.printf("TransitionalStyle[%s]: h=%f\n", content, h);
    return style.minHeight(h).maxHeight(h);
})

The invisible foldable panel one is not displayed correctly after the property changes.
Initial state. Both expanded.

After clicking the Show button on the first tab.

Another invalid state. The BG color seems to be displayed correctly. Only the size seems to be affected.

Framework: We want to synchronize the run panels between tabs.


some questions about casbin flutter sdk

Can Casdoor flutter sdk realize not to jump to the web page authorization, but directly use the ui on the flutter side to implement related interaction logic with the backend

@JarynChen plz edit your issue title and content to change to English

@ziliangyu
/cc @xiaobeiswift

@JarynChen
You mean to write an interface with flutter that is the same as the front end of casdoor?like this?

@JarynChen You mean to write an interface with flutter that is the same as the front end of casdoor?like this?

Yes，but not just the ui, I also want to know the interactive method. Because I think many flutter apps prefer complete the login operation in the app inside.

@JarynChen the Casdoor login page (web frontend) has very complicated logic at: https://github.com/casdoor/casdoor/blob/master/web/src/auth/LoginPage.js , it would be nearly impossible for you to create a Flutter native one for it. You are welcome to try it but what I suggest is keeping using the webview way which has Casdoor web login page embedded.

@JarynChen the Casdoor login page (web frontend) has very complicated logic at: https://github.com/casdoor/casdoor/blob/master/web/src/auth/LoginPage.js , it would be nearly impossible for you to create a Flutter native one for it. You are welcome to try it but what I suggest is keeping using the webview way which has Casdoor web login page embedded.

Thanks.


Update to sealed-enum 0.6.0

Codecov Report

Merging #905 (e255053) into main (da38b53) will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##             main     #905   +/-   ##
=======================================
  Coverage   64.62%   64.62%
=======================================
  Files         153      153
  Lines        7746     7746
  Branches     1440     1440
=======================================
  Hits         5006     5006
  Misses       1857     1857
  Partials      883      883

Impacted Files
Coverage Δ

...elife/preferences/DefaultComposeLifePreferences.kt
67.21% <ø> (ø)

...poselife/preferences/TestComposeLifePreferences.kt
86.50% <ø> (ø)

...exvanyo/composelife/algorithm/HashLifeAlgorithm.kt
95.61% <100.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


A SoS like feature might be a good idea.

A SoS like feature where a person can call for help might be useful in many situations.

Feature added in v0.80.0


Detailed Guide to understand your code

Good Morning Sir
Could you please provide me with some detailed guide to understand your code?
Like how things are working from the very basic, and which components are connected to which one, and how these are working interconnectively.
Please revert back asap.

please watch the two videos for guides on how to understand the code


add stat reporting for dart core and dart tools packages

add stat reporting for dart core and dart tools packages

To the dart bin/report.dart weekly stats reporting, this adds:

--dart-core, to show stats for the dart core (tier 1) packages
--dart-tools, to show stats for the dart tools (tier 2) packages
--month, to show stats on a monthly basis (instead of weekly)

Here's the new CLI:
Run a week-based report on issues opened and closed.

Usage: report weekly [arguments]
-h, --help                 Print this usage information.
    --dart-core            Query the Dart Ecosystem core packages.
    --dart-tools           Query the Dart Ecosystem tools packages.
    --date=<2022-01-26>    Specify the date to pull data from (defaults to the last full week).
    --month                Return stats based on calendar months (instead of weeks).

Hmm, I'll need to sign the commits as well.


Issue and Pull Request templates

Gogs version (or commit ref): bf060387af47dbc9f0abb06025c754baad093061
Git version: git version 2.11.0
Operating system: Debian Stretch
Database (use [x]):

[x] PostgreSQL
[ ] MySQL
[ ] MSSQL
[ ] SQLite

Can you reproduce the bug at https://try.gogs.io:

[x] Yes (provide example URL)
[ ] No
[ ] Not relevant

Log gist (usually found in log/gogs.log):

As a feature request, it would be nice if Gogs allowed for specifying issue and pull request templates in a manner similar to GitHub.
https://github.com/blog/2111-issue-and-pull-request-templates

Hi, it is already supported, same way as GitHub does.

Thanks. Works perfectly.


"Show All Data" of a object show the wrong data type length / Wrong field type

Make sure to read the troubleshooting section before creating an issue

[X ] I've read the common issues and the one I'm about to create is not one of those documented.

Describe the bug
Using "show all fields" function from a Salesforce object, some fields are shown with the wrong data type length
To Reproduce
Steps to reproduce the behavior:

Open "Inspector" in any salesforce page
Go to "Objects" tab
Search for "OrderItem"
Click/select order item
Click "Show all data" button
Search for "Quantity" in filter field in the top right corner

Expected behavior
A list of all object fields is shown
Screenshots

Desktop :

OS: Windows 11 Home Single Language 23H2 | version 22631.3155 | Windows Feature Experience Pack 1000.22684.1000.0
Browser: Microsoft Edge
Version: 121.0.2277.128 (Compilação oficial) (64 bits)

Additional context
Add any other context about the problem here.

Hi @efcdilascio,
You are correct there is a difference between data shown in Salesforce and the one in inspector.
The data displayed in inspector is the one from the 'EntityParticle'

I'll update it to reflect Salesforce view


shaka-packager: 3.3.0 -> 3.4.0

https://github.com/shaka-project/shaka-packager/releases/tag/v3.4.0
Backwards compatible update (shaka-packager follows semver).
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[x] x86_64-darwin
[x] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review pr 355268

x86_64-linux

:white_check_mark: 1 package built:

shaka-packager

aarch64-linux

:white_check_mark: 1 package built:

shaka-packager

x86_64-darwin

:white_check_mark: 1 package built:

shaka-packager

aarch64-darwin

:white_check_mark: 1 package built:

shaka-packager


Add openstack

Hi guys,
do you want to merge Openstack stuff?

Hi @cromega, thanks for a comment.
I've checked aws templates and found the thing which I don't like. Resource pools (and instance_types) are defined both in logsearch-infrastructure-aws.yml and stub.aws.example.yml. It's looks weird.
I believe it's much better to define resource pools once, and take all variables from meta, which can be imported from a stub file.
As for default values, I've tried to specify them, as described in the documentation:
compilation:
  cloud_properties:
    instance_type: (( grab meta.instance_type.compilation || "m1.small" ))

However, it does not work. Not sure why:
$ ./scripts/generate_deployment_manifest openstack stub.yml
1 error(s) detected:
 - $.compilation.cloud_properties.instance_type: Unable to resolve `||`: `||` could not be found in the YAML datastructure

@axelaris - Could you email me at<EMAIL_ADDRESS>- I'd like to figure out how you can meet the team so we can work more closely on this kind of stuff.

Hi @cromega, @mrdavidlaing.
I've updated Spruce release, it was help to resolve the issue with '||'.
Also I've added default values to the stub.


Add a scroll to top navigation button

There is an absence of a scroll-to-top button on the website. The website's user experience would be improved by the addition of this floating button.
I have build a lot of personal projects with just few lines of code scroll to top button, I'd like to contribute this feature.
Please assign me the task under GSSoC'23.
I can also update the footer if you want with good styling for the links

hey..I think the similar issue has been previously assigned..

Ohh I didn't notice on the first go
What is to be done now for this issue?


update driver find element

Selenium find_element_by_tag_name got deprecated.
Updating the function with new selenium.webdriver.common.by import By

This won't work in production since selenium is not a part of requirements, so this would break the code of users who use the package, but without selenium.
I'll think of a solution and get back to this later, for now this pr will be opened just as a reminder for me. Thanks!


⚠ Bofrost.be has degraded performance

In dccaadf, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1445 ms

Resolved: Bofrost.be performance has improved in fb77e2d.


Update readme: change fig to docker-compose

Fig has been replaced by Docker Compose, and it looks like #16 addresses that, so update the project readme.

Thanks @dmurphy1 :)


Case inconsistency inside lease-status

As per the documentation (haven't verified yet through the CLI) the response from the lease-status command has an inconsistency in the casing as shown in the example:
{
  "services": {
    "web": {
      "name": "web",
      "available": 1,
      "total": 1,
      "uris": [
        "bnd9dtb1rddsl6gfcn3q0j771g.www.nocixp1.iptestnet.akashian.io"
      ],
      "observed_generation": 1,
      "replicas": 1,
      "updated_replicas": 1,
      "ready_replicas": 1,
      "available_replicas": 1
    }
  },
  "forwarded_ports": null,
  "ips": {
    "web": [
      {
        "Port": 3000,
        "ExternalPort": 80,
        "Protocol": "TCP",
        "IP": "<IP_ADDRESS>"
      }
    ]
  }
}

As seen the ips object follows a PascalCase notation, different to the snake_cased used across all the other responses. It's important to keep the consistency for systems that integrate with the provider-services. If it makes sense some form of guidelines could be developed for future contributions to make sure a standard is followed that will allow integrations to be developed with less friction points such as these. 😄
Update:
Based on this file there seems to be the "correct" json tags, although it is not reflected in the documentation:
type ProviderLeasedIPSpec struct {
	LeaseID      LeaseID `json:"lease_id"`
	ServiceName  string  `json:"service_name"`
	Port         uint32  `json:"port"`
	ExternalPort uint32  `json:"external_port"`
	SharingKey   string  `json:"sharing_key"`
	Protocol     string  `json:"protocol"`
}

I'm not sure whether this is the struct that is serialized by the CLI.
Update 2:
This seems to be the serialized structs but there is the IPs struct missing which confuses me https://github.com/ovrclk/provider-services/blob/main/cluster/types/v1beta2/types.go

Addressed in PR #57


SW-4365 Record initial batch ID of nursery transfers

If a batch is created from another batch via nursery transfer, record the ID of
the originating batch so users can trace the batch back to its origin.

Current dependencies on/for this PR:

main

PR #1439   👈

This stack of pull requests is managed by Graphite.


python311Packages.azure-mgmt-recoveryservicesbackup: 5.1.0 -> 6.0.0

Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 232669 run on x86_64-linux 1

6 packages built:

azure-cli
azure-cli.dist
python310Packages.azure-mgmt-recoveryservicesbackup
python310Packages.azure-mgmt-recoveryservicesbackup.dist
python311Packages.azure-mgmt-recoveryservicesbackup
python311Packages.azure-mgmt-recoveryservicesbackup.dist


go1.16.10 and go1.17.3

Makes the latest releases available, as announced https://groups.google.com/g/golang-announce/c/0fM21h43arc .
Checksums can be validated at https://golang.org/dl/?mode=json

I've double checked this diff, and I'm not sure how the test failures are related.


conda environments get hashed names assigned which are different for the same .yaml

Snakemake version
$ snakemake --version
5.8.1+5.g47451f3

5.8.1 with a few small patches.
Describe the bug
In our pipelines we reuse .snakemake/conda folder for different sample folders, so that same environments are not unnecessarily created over and over again.
However, this happens regardless because of the way snakemake assigns hashed names to yaml environments. (Are these hashed names based on a modification date of a file? No, it seems this depends on symlinking to the same .yaml file from two different directories).
Currently we get something like this:
/.snakemake/conda $ find *yaml | parallel sha256sum | sort
538e45677632ca7c11cca53cebbdcf7a53a4c4eae1fda04a5327c73a5e462f48  7c606258.yaml
8c8f448fb762cb5e908594e49aeea7bc484bbe2d71a98b92c8d902a55d8baec3  61b41b35.yaml
8c8f448fb762cb5e908594e49aeea7bc484bbe2d71a98b92c8d902a55d8baec3  ebabcffe.yaml
f2c8d5e1c7fdc63c1729f58b82897aa88ca587e9d2ef2b59bc473c5d11f86ff2  3954d749.yaml
f2c8d5e1c7fdc63c1729f58b82897aa88ca587e9d2ef2b59bc473c5d11f86ff2  44cc551f.yaml
f2c8d5e1c7fdc63c1729f58b82897aa88ca587e9d2ef2b59bc473c5d11f86ff2  8f1cabe3.yaml
f2c8d5e1c7fdc63c1729f58b82897aa88ca587e9d2ef2b59bc473c5d11f86ff2  fbd6d8aa.yaml

Can this be changed so that hashed name depends only on the content of the .yaml file?
Minimal example (updated)

Create a simple rule dependent on a conda environment accessed through a symlinked directory:

$ mkdir test_dir1
$ cd test_dir1
test_dir1 $ ln -s /data/dir/with/yaml/files/envs ./
test_dir1 $ cat Snakefile
rule make_A:
    output: "A.out"
    conda: "envs/rclone.yaml"
    shell:"""
            touch "{output}"  ## Creates an empty file
    """
test_dir1 $ snakemake --use-conda A.out
[...]
Activating conda environment: ~/workspace/snakemake_issues/test_dir1/.snakemake/conda/54f2b88b
[...]
# The hash of conda env used is 54f2b88b

Now create a second directory in hope to reuse the already created conda envs.

test_dir1 $ cd ..
$ mkdir -p test_dir3/.snakemake
$ cp -P test_dir1/* test_dir3/
## Now test_dir3/envs points to the same directory as test_dir1/envs
$ ln -sr test_dir1/.snakemake/conda test_dir3/.snakemake/conda
$ cd test_dir3
test_dir3 $ snakemake --use-conda A.out -f
[...]
Activating conda environment: ~/workspace/snakemake_issues/test_dir3/.snakemake/conda/0e467436
[...]
# The hash of conda env used is 0e467436

The newly built and activated environment hash is different than in the step 1, in spite of conda: "envs/rclone.yaml"  directives in both test directories pointing to the same rclone.yaml file through symlinked envs directories. It seems that, maybe, the symlinked path is used in the creation of conda env hash. Isn't the most appropriate to use only content of a file to create this hash?

I just tried a minimal example but couldn't replicate this problem. (5.8.1)

Sorry @SichongP I rushed with the previous minimal example, can you try with the updated one above?
It seems that symlinking to the same .yaml file from two different directories produces different hashes (touching, i.e. date of the .yaml file is irrelevant).

I see. So the reason seems to be that snakemake uses both the path of the env file and its content to hash. The reason for this, as stated in the code, is:

     # Include the absolute path of the target env dir into the hash.
     # By this, moving the working directory around automatically
     # invalidates all environments. This is necessary, because binaries
     # in conda environments can contain hardcoded absolute RPATHs.

I suppose this could be a problem in your use case as well.

Aha, then in my case the .snakemake/conda directory, where environments are created is also symlinked (in fact symlinked to ~/miniconda3/envs/) thus hardlinks within environments are not a problem. In fact, the logic in the comment you cited would be more correct if the .snakemake/conda absolute real path was used in the creation of the hash. This should be fixed this way, don't you think? To fix that I need to know which variable contains a path to .snakemake/conda, or how such path can be constructed.

I'm not very familiar with how conda handles its binaries. Perhaps @johanneskoester has a better answer.

Here is a patch so that conda env yaml hash is computed based content and .snakemake/conda absolute real path. There is also another small patch at the end for conda info json I found necessary for conda to work.
This fixes my problem, thanks @SichongP , maybe @johanneskoester can weight on merging this into main, I could issue a pull request.
diff --git a/snakemake/conda.py b/snakemake/conda.py
index 041e15d..924880e 100644
--- a/snakemake/conda.py
+++ b/snakemake/conda.py
@@ -48,6 +48,9 @@ class Env:
         self._env_dir = dag.workflow.persistence.conda_env_path
         self._env_archive_dir = dag.workflow.persistence.conda_env_archive_path

+        self._conda_dir = os.path.abspath(os.path.realpath(
+                           os.path.join(os.getcwd(),".snakemake","conda"))) # for conda env hash
+
         self._hash = None
         self._content_hash = None
         self._content = None
@@ -74,7 +77,10 @@ class Env:
             # invalidates all environments. This is necessary, because binaries
             # in conda environments can contain hardcoded absolute RPATHs.
             assert os.path.isabs(self._env_dir)
-            md5hash.update(self._env_dir.encode())
+            # Update hash from conda directory, not from environment directory.
+            assert os.path.isabs(self._conda_dir)
+            #md5hash.update(self._env_dir.encode())
+            md5hash.update(self._conda_dir.encode())
             if self._singularity_img:
                 md5hash.update(self._singularity_img.url.encode())
             md5hash.update(self.content)
@@ -349,7 +355,7 @@ class Conda:
             singularity_img = singularity_img.path
         self.singularity_img = singularity_img
         self._check()
-        self.info = json.loads(shell.check_output(self._get_cmd("conda info --json")))
+        self.info = json.loads(shell.check_output(self._get_cmd("conda info --json")).decode('utf-8'))

     def _get_cmd(self, cmd):
         if self.singularity_img:


Test-runner:  separate build run, make compiled tests serializable

Refactor TestRunner struct to separate compilation from test run. This will allow downstream test runner implementations to run precompiled tests without the compiler setup for TestRunner struct.

This change is

Hi @orizi !
Would you mind taking another look?
I have realized we cannot simply add derive Serialize everywhere, as HashMap keys are not serialized to strings here :/

crates/cairo-lang-starknet/src/contract.rs line 312 at r4 (raw file):
Previously, mkaput (Marek Kaput) wrote…
Use the following pattern instead: https://github.com/starkware-libs/cairo/blob/94ea2a3184a01e8c84dc67c863937cecb33917ea/crates/cairo-lang-filesystem/src/cfg.rs#L44-L75, i.e. create same named struct in a submodule serde_ext (using from/into is fine in this instance, no need to manually do this).
Reason: serde uses structure name in error messages

<3

crates/cairo-lang-test-runner/src/lib.rs line 298 at r6 (raw file):
Previously, orizi wrote…
i'm confused - OrderedHashMap has serde.

Yes, but it may fail in runtime
https://docs.rs/serde_json/latest/serde_json/fn.to_string.html
For
#[test]
fn serde() {
    let x = OrderedHashMap::from_iter(vec![
        (FunctionId::from(0), OrderedHashMap::from_iter(vec![(CostTokenType::Const, 1)])),
        (FunctionId::from(1), OrderedHashMap::from_iter(vec![(CostTokenType::Const, 2)])),
    ]);
    println!("{}", serde_json::to_string(&x).unwrap());
}

I get
called `Result::unwrap()` on an `Err` value: Error("key must be a string", line: 0, column: 0)
thread 'serde' panicked at 'called `Result::unwrap()` on an `Err` value: Error("key must be a string", line: 0, column: 0)', crates/cairo-lang-test-runner/src/lib.rs:546:46

crates/cairo-lang-starknet/src/contract.rs line 298 at r7 (raw file):
Previously, orizi wrote…
I think you can do all of these with two generic functions, one for serialization, and one for deserialization.
serialize_ordered_hashmap_vec, deserialize...
And call it for all three instances.

Yes, indeed, sorry!


nil slice/map should compare equal to empty slice/map

The documentation states:
Slices and arrays are equal if they have the same length and the elements
at each index are equal. Maps are equal if their keys are exactly equal
(according to the == operator) and the corresponding elements for each
key are equal.

I read this as implying that this program would print true true, but
instead it prints false false.
package main

import (
	"github.com/google/go-cmp/cmp"
	"log"
)

func main() {
	log.Println(
		cmp.Equal(map[int]string{}, map[int]string(nil)),
		cmp.Equal([]int{}, []int(nil)),
	)
}

For the record, here's a (somewhat awkward) workaround for slices
	cmp.FilterValues(func(x, y interface{}) bool {
		if x == nil || y == nil {
			return false
		}
		xv, yv := reflect.ValueOf(x), reflect.ValueOf(y)
		xt, t1 := xv.Type(), yv.Type()
		return xt.Kind() == reflect.Slice &&
			t1.Kind() == reflect.Slice &&
			xv.Len() == 0 &&
			yv.Len() == 0 &&
			(xv.IsNil() != yv.IsNil())
	}, cmp.Transformer("nilSlice", func(in interface{}) interface{} {
		return reflect.Zero(reflect.TypeOf(in)).Interface()
	}))

... and now I see cmpopts.EquateEmpty!
I suggest a documentation update, because the documentation does not make
it clear that EquateEmpty or the like would be required (a nil slice has the same
number of elements as an empty slice).

Yea, the documentation for this is misleading.


nvm 1.3.1

This adds set -e to ensure build fails if nvm step fails (see https://github.com/Almouro/bitrise-nvm-step/pull/15/files)
New Pull Request Checklist
Please mark the points which you did / accept.

[x] I will not move an already shared step version's tag to another commit
[x] I read the Step Development Guideline
[x] I have a test for my Step, which can be run with bitrise run test (in the step's repository)
[x] I did run bitrise run audit-this-step (in the step's repository - note, if you don't have this workflow in your bitrise.yml, you can copy it from the step template.)
[x] I read and accept the Abandoned Step policy

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Hi @Almouro ,
thank you for the new Step version, looks good to me!

@Almouro After this changes this step starts to fail for me
+------------------------------------------------------------------------------+

| (2) nvm                                                                      |
+------------------------------------------------------------------------------+
| id: nvm                                                                      |
| version: 1.3.1                                                               |
| collection: https://github.com/bitrise-io/bitrise-steplib.git                |
| toolkit: bash                                                                |
| time: 2022-07-20T16:35:13Z                                                   |
+------------------------------------------------------------------------------+
|                                                                              |
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
100 15037  100 15037    0     0  58716      0 --:--:-- --:--:-- --:--:-- 62136
=> Downloading nvm from git to '/Users/vagrant/.nvm'

=> Cloning into '/Users/vagrant/.nvm'...
* (HEAD detached at FETCH_HEAD)
  master
=> Compressing and cleaning up git repository
=> Appending nvm source string to /Users/vagrant/.profile
=> bash_completion source string already in /Users/vagrant/.profile
npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.
=> You currently have modules installed globally with `npm`. These will no
=> longer be linked to the active version of Node when you install a new node
=> with `nvm`; and they may (depending on how you construct your `$PATH`)
=> override the binaries of modules installed with `nvm`:
/usr/local/lib
├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>└──<EMAIL_ADDRESS>=> If you wish to uninstall them at a later point (or re-install them under your
=> `nvm` Nodes), you can remove them from the system Node as follows:
     $ nvm use system
     $ npm uninstall -g a_module
=> Close and reopen your terminal to start using nvm or run the following to use it now:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
|                                                                              |
+---+---------------------------------------------------------------+----------+
| x | nvm (exit code: 3)                                            | 13.49 sec|
+---+---------------------------------------------------------------+----------+
| Issue tracker: https://github.com/almouro/bitrise-nvm-step/issues            |
| Source: https://github.com/almouro/bitrise-nvm-step                          |
+---+---------------------------------------------------------------+----------+

previously it was working fine
+------------------------------------------------------------------------------+

| (2) nvm                                                                      |
+------------------------------------------------------------------------------+
| id: nvm                                                                      |
| version: 1.3.0                                                               |
| collection: https://github.com/bitrise-io/bitrise-steplib.git                |
| toolkit: bash                                                                |
| time: 2022-07-15T15:04:27Z                                                   |
+------------------------------------------------------------------------------+
|                                                                              |
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed

  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
 57 13527   57  7748    0     0  33363      0 --:--:-- --:--:-- --:--:-- 35058
100 13527  100 13527    0     0  57957      0 --:--:-- --:--:-- --:--:-- 60932
=> Downloading nvm from git to '/Users/vagrant/.nvm'

=> Cloning into '/Users/vagrant/.nvm'...
=> Compressing and cleaning up git repository
=> Appending nvm source string to /Users/vagrant/.profile
=> bash_completion source string already in /Users/vagrant/.profile
N/A: version "14.18.3 -> N/A" is not yet installed.
You need to run "nvm install 14.18.3" to install it before using it.
npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.
=> You currently have modules installed globally with `npm`. These will no
=> longer be linked to the active version of Node when you install a new node
=> with `nvm`; and they may (depending on how you construct your `$PATH`)
=> override the binaries of modules installed with `nvm`:
/usr/local/lib
├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>├──<EMAIL_ADDRESS>└──<EMAIL_ADDRESS>=> If you wish to uninstall them at a later point (or re-install them under your
=> `nvm` Nodes), you can remove them from the system Node as follows:
     $ nvm use system
     $ npm uninstall -g a_module
=> Close and reopen your terminal to start using nvm or run the following to use it now:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
N/A: version "14.18.3 -> N/A" is not yet installed.
You need to run "nvm install 14.18.3" to install it before using it.
Switching to working directory: /Users/vagrant/git
Found '/Users/vagrant/git/.nvmrc' with version <14.18.3>
Downloading and installing node v14.18.3...
Downloading https://nodejs.org/dist/v14.18.3/node-v14.18.3-darwin-x64.tar.xz...
#=#=#

#                                                                          1.8%
#####                                                                      7.5%
################                                                          23.0%
###########################                                               37.6%
###################################                                       49.9%
#############################################                             63.1%
#######################################################                   77.1%
###########################################################               83.2%
################################################################          89.9%
######################################################################## 100.0%
Computing checksum with sha256sum
Checksums matched!
2022-07-15 15:04:46.178 xcodebuild[2361:9585] Requested but did not find extension point with identifier Xcode.IDEKit.ExtensionSentinelHostApplications for extension Xcode.DebuggerFoundation.AppExtensionHosts.watchOS of plug-in com.apple.dt.IDEWatchSupportCore
2022-07-15 15:04:46.179 xcodebuild[2361:9585] Requested but did not find extension point with identifier Xcode.IDEKit.ExtensionPointIdentifierToBundleIdentifier for extension Xcode.DebuggerFoundation.AppExtensionToBundleIdentifierMap.watchOS of plug-in com.apple.dt.IDEWatchSupportCore
Now using node v14.18.3 (npm v6.14.15)
Creating default alias: default -> 14.18.3 (-> v14.18.3 *)
|                                                                              |
+---+---------------------------------------------------------------+----------+
| ✓ | nvm                                                           | 24.64 sec|
+---+---------------------------------------------------------------+----------+

for now I'm downgrading back to 1.3.0

@godrei do you know if it is possible to stick exactly with 1.3.0 which was working for me before?
UI doesn't allow it for me

please ignore me, found answer in https://github.com/Almouro/bitrise-nvm-step/issues/16


Added a 'default' switch for Docker and Git - Closes #18

Purpose
As explained in issue #18, it would be great if the alias for Docker or Git will still work with 'unknown' commands. This PR closes that issue.


book errata p 682

book errata p 682

Thanks for pointing out this errata. You are right, I think I missed counting the final step.  At t=7 an action is taken in order to go to the terminal state T.
So for episode 1,  t goes from 0 to 8, and recall that the sequence is denoted by

t=0: <S0, A0, R1>
t=1: <S1, A1, R2>
t=2: <S2, A2, R3>
..
t=7: <S7, A7, R8>
Terminal state T

Also , we know the following immediate rewards: R1=0, R2=0, ..., R6=0, R7=0, R8=1
So now let's calculate the returns for the first episode:

At t=0  : S_0=B  => G_0 = R1 + gammaR2 + ... + gamma^6 * R7 + gamma^7R8 = gamma^7 * R8
At t=1  :  S_1=B  =>  G_1 = R2 + gammaR3 + ... + gamma^5 * R7 + gamma^6R8 = gamma^6 * R8
At t=2 : S_2 =C  => G_2 = R3 + gammaR4 + ... + gamma^4 * R7 + gamma^5R8 = gamma^5 * R8
At t=3 : S_3 =C  => G_3 = R4 + gammaR5 + ... + gamma^3 * R7 + gamma^4R8 = gamma^4 * R8
At t=4 : S_4 =C  => G_4 = R5 + gammaR6 + gamma^2 * R7  + gamma^3R8 = gamma^3 * R8
At t=5 : S_5 =C  => G_5 = R6 + gammaR7  + gamma^2R8= gamma^2 * R7
At t=6 : S_6 = B => G_6 = R7 + gamma*R8 = gamma
At t=7 : S_7 = A => G_7 = R8 = 1
Terminal state T

Similarly, for episode 2, t goes from 0 to 10, and R0=R1=...=R9=0 while R10=-1

At t=0  : S_0=A  => G_0 = R1 + gammaR2 + ... + gamma^9R10 = gamma^9 * R10
At t=1  :  S_1=B  =>  G_1 = R2 + gammaR3 + ... + gamma^8R10 = gamma^8 * R10
At t=2 : S_2 =B  => G_2 = R3 + gammaR4 + ... + gamma^7R10 = gamma^7 * R10
At t=3 : S_3 =B  => G_3 = R4 + gammaR5 + ... + gamma^6R10 = gamma^6 * R10
At t=4 : S_4 =B  => G_4 = R5 + gammaR6 + ... + gamma^5R10 = gamma^5 * R10
At t=5 : S_5 =B  => G_5 = R6 + gammaR7 + ... + gamma^4R10 = gamma^4 * R10
At t=6 : S_6 =B  => G_6 = R7 + gammaR8 + ... + gamma^3R10 = gamma^3 * R10
At t=7 : S_7 =B  => G_7 = R8 + gammaR9 + gamma^2R10 = gamma^2 * R10
At t=8 : S_8 =B  => G_8 = R9 + gamma*R10 = gamma * R10
At t=9 : S_9 = B => G_9 = R10 = -1
Terminal state T

@vmirly posted this errata via packt but it was annoying as heck to explain without an image, having a corrected answer will facilitate my understanding of this part, ill read it when i have time with my current book and let you know how this follows :) xxx

also the RL chapter is still great, but feels rushed in comparison with whole book, maybe a bit more love to it on 4th ed? xx

Oh yeah for sure. The rewrites for Tf 2.0 took much longer than expected. And we both were very busy in Fall (due to my teaching responsibilities and Vahid starting a new position). It definitely could and should be smoothened out in a potential next edition. Thanks for your feedback!


Add generator for Arguments class and for Query class

This PR adds a new feature to Artemis, making it able to generate two new classes:

Argument class, that contains the structure of all the arguments required by a query.
Query class, that act as a Data class for the query, when instantiating it, passing an Argument object if necessary. It includes the query string and the parser function for the data returned.

This feature is especially useful for making a lot easier to integrate Artemis with other existing network solutions for GraphQL, thus, not coupling its main feature of GraphQL<-> Dart conversion with the request/response/caching/etc... layers of the GraphQL usual request flow.
Tests were written and updated, and also the examples folder updated to include those new features.

@comigor Did some changes like we talked and created the ArtemisClient abstraction. Can you take a look again please :)

@leoiacovini Released as https://pub.dev/packages/artemis/versions/0.3.0


[POSSIBLE BUG] cssrewrite filter when importing using '@AcmeMainBundle/Resources/public/css/*

The css files images become something like:
background-image: url("../../Resources/public/img/glyphicons-halflings.png")

The problem occurs only when I use the cssrewrite filter and I import my stylesheets using: '@AcmeMainBundle/Resources/public/css/*
This does not happen when I import 'bundles/acmemain/css/*'.
I don't know if this is the normal behavior for this, seems a bit suspicious.

No news about this issue? it's quite boring ;(

There is already a pull request, but it is still waiting.
@stof What do you think?


content: fr: Fix incorrect letter case for data storage units

Gib (Gibibit) was used where GiB (Gibibyte) is intended.
Related PRs

#43238
#43319
#43321
#43322
#43323
#43324

/lgtm
/approve


Generate new plugin in a custom directory

Adds the option to be able to generate the new plugin in a specified directory rather than the current working directory

Can’t the result you’re looking for be achieved by doing a cd into the desired parent directory first before running create-figma-plugin?

Sure, the idea was more that in a monorepo where each new figma plugin is a new workspace, this would enable creating them directly more easily, rather than wrapping create-figma-plugin in another script.


bug playground

update doesnt help

you probably don't have the latest version.

 update doesnt help

I just checked it out. Everything works


Can't use pre-trained data frozen_inference_graph.pbsegmentaa, ab, ac and ad

Hi,
Thank you for your help on the previous issue. I successfully go through all the steps, but the output images don't contain any identified objects. To figure out the problem I'm trying to use your pre-trained data but analyzeimages.py can't read them because it's separated as frozen_inference_graph.pbsegmentaa, frozen_inference_graph.pbsegmentab, frozen_inference_graph.pbsegmentac and frozen_inference_graph.pbsegmentad. Would you please let me know how to use them with analyzeimages.py?
Edit: I just found the detection scores are pretty low with my training data which has more than 20,000 steps. So it looks like my training has some problem. I used the sample images in this git. Any comments about the problem?
Thank you.

Hello,
I split apart the model because Github has a file size limit. You can concatentate the files back together, for instance something like cat frozen_inference_graph.pbsegment?? > frozen_inference_graph.pb
What was your Total Loss value after 20,000 steps? Were you running tensorboard during the training?

Thank you for your reply, attached is my loss graph and evaluation images. I ran the tensorboard during all my training. The loss value is pretty low but the diagram looks strange. The evaluation images detect everything as the bicycle. I just tried your pre-trained model and the result is pretty good.

Those images are from step 0. Tensorboard should rerun them for further steps. I dont know why you arent seeing eval images for later steps. You could try just exporting a frozen version of your model and running the analyzeimages to see the results.
I am glad you are seeing good results with the frozen model I posted.


add new templates

Docs Build status updates of commit 1d3be26:
:clock10: Pending: waiting for processors (10 builds ahead of you)
:warning: Docs Build is busy, currently there are 10 builds ahead of this one, for more information you can view the Build queue graph on the Docs Portal.

Docs Build status updates of commit 1d3be26:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/assets/images/group-activities-1.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/group-activities-2.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/open-badges-1.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/open-badges-2.png
:white_check_mark:Succeeded
View

msteams-platform/samples/app-templates.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit b0789ca:
:clock10: Pending: waiting for processors (10 builds ahead of you)
:warning: Docs Build is busy, currently there are 10 builds ahead of this one, for more information you can view the Build queue graph on the Docs Portal.

Docs Build status updates of commit b0789ca:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/assets/images/group-activities-1.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/group-activities-2.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/open-badges-1.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/open-badges-2.png
:white_check_mark:Succeeded
View

msteams-platform/samples/app-templates.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit 262f128:
:clock10: Pending: waiting for processors (11 builds ahead of you)
:warning: Docs Build is busy, currently there are 11 builds ahead of this one, for more information you can view the Build queue graph on the Docs Portal.

Docs Build status updates of commit 262f128:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/assets/images/group-activities-1.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/group-activities-2.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/open-badges-1.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/open-badges-2.png
:white_check_mark:Succeeded
View

msteams-platform/samples/app-templates.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit 679698b:
:clock10: Pending: waiting for processors (12 builds ahead of you)
:warning: Docs Build is busy, currently there are 12 builds ahead of this one, for more information you can view the Build queue graph on the Docs Portal.

Docs Build status updates of commit 679698b:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/assets/images/group-activities-1.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/group-activities-2.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/open-badges-1.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/open-badges-2.png
:white_check_mark:Succeeded
View

msteams-platform/samples/app-templates.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit 2ff71b7:
:clock10: Pending: waiting for processors (13 builds ahead of you)
:warning: Docs Build is busy, currently there are 13 builds ahead of this one, for more information you can view the Build queue graph on the Docs Portal.

Docs Build status updates of commit 2ff71b7:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/assets/images/group-activities-1.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/group-activities-2.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/open-badges-1.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/open-badges-2.png
:white_check_mark:Succeeded
View

msteams-platform/samples/app-templates.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit ff0d0e5:
:clock10: Pending: waiting for processors (13 builds ahead of you)
:warning: Docs Build is busy, currently there are 13 builds ahead of this one, for more information you can view the Build queue graph on the Docs Portal.

Docs Build status updates of commit ff0d0e5:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/assets/images/group-activities-1.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/group-activities-2.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/open-badges-1.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/open-badges-2.png
:white_check_mark:Succeeded
View

msteams-platform/samples/app-templates.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit ee1777b:
:clock10: Pending: waiting for processors (12 builds ahead of you)
:warning: Docs Build is busy, currently there are 12 builds ahead of this one, for more information you can view the Build queue graph on the Docs Portal.

Docs Build status updates of commit ee1777b:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/assets/images/group-activities-1.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/group-activities-2.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/open-badges-1.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/open-badges-2.png
:white_check_mark:Succeeded
View

msteams-platform/samples/app-templates.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit 26156e7:
:clock10: Pending: waiting for processors (15 builds ahead of you)
:warning: Docs Build is busy, currently there are 15 builds ahead of this one, for more information you can view the Build queue graph on the Docs Portal.

Docs Build status updates of commit 26156e7:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/assets/images/group-activities-1.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/group-activities-2.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/open-badges-1.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/open-badges-2.png
:white_check_mark:Succeeded
View

msteams-platform/samples/app-templates.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit 6d7e4b1:
:clock10: Pending: waiting for processors (12 builds ahead of you)
:warning: Docs Build is busy, currently there are 12 builds ahead of this one, for more information you can view the Build queue graph on the Docs Portal.

Docs Build status updates of commit 6d7e4b1:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

msteams-platform/assets/images/group-activities-1.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/group-activities-2.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/open-badges-1.png
:white_check_mark:Succeeded
View

msteams-platform/assets/images/open-badges-2.png
:white_check_mark:Succeeded
View

msteams-platform/samples/app-templates.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Switch to float from double for data?

Right now we are using double precision floating point numbers (namely double) in our code base to store data. While that gives more accurate results and is less vulnerable to rounding errors, it also increases the memory usage of the application, compared to float. So I am considering to use the single precision type float more in our code base.
For my use cases, I do not need such high precision in most places (but I am still investigating). I wonder if anyone has some cases that double is actually required?

Float is accurate enough for my cases.
Qiling Zou

From: kunhtkun @.>
Sent: Tuesday, June 18, 2024 5:28:41 AM
To: maccmu/macposts @.>
Cc: Subscribed @.***>
Subject: [maccmu/macposts] Switch to float from double for internal data storage? (Issue #66)
Right now we are using double precision floating point numbers (namely double) in our code base to store data. While that gives more accurate results and is less vulnerable to rounding errors, it also increases the memory usage of the application, compared to float. So I am considering to use the single precision type float more in our code base.
For my use cases, I do not need such high precision in most places (but I am still investigating). I wonder if anyone has some cases that double is actually required?
—
Reply to this email directly, view it on GitHubhttps://github.com/maccmu/macposts/issues/66, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABXEA7N4IBQD7NEAPQF377LZH5IITAVCNFSM6AAAAABJOYTARCVHI2DSMVQWIX3LMV43ASLTON2WKOZSGM2TQMRZGMYDKOI.
You are receiving this because you are subscribed to this thread.Message ID: @.***>

Thanks for the input! I am test driving a float build and will report back after I get some results.

I did a quick and dirty swap of double to float, and ran it on the Sioux Falls network. The results were not as impressive as I expected though. Below are two graphs showing the memory usage overtime (x-axis is time, and y-axis is heap usage), produced by valgrind --tool=massif and ms_print.
 Perhaps the network is too small?
The script:
import macposts
import macposts.utils

with macposts.utils.silence():
    dta = macposts.Dta.from_files("siouxfalls")
    dta.register_links()
    dta.install_cc()
    dta.run_whole()

Data files can be downloaded here: https://babyam.andrew.cmu.edu/files/macposts/data/siouxfalls.zip

Thanks for the efforts. I agree that the improvement looks somewhat minor
for this network. But it may still be significant for large networks.
On Thu, Jun 20, 2024 at 8:17 AM kunhtkun @.***> wrote:

I did a quick and dirty swap of double to float, and ran it on the Sioux
Falls network. The results were not as impressive as I expected though.
Below are two graphs showing the memory usage overtime (x-axis is time, and
y-axis is heap usage), produced by valgrind --tool=massif and ms_print.
 Perhaps the network is too small?
The script:
import macpostsimport macposts.utils
with macposts.utils.silence():
dta = macposts.Dta.from_files("siouxfalls")
dta.register_links()
dta.install_cc()
dta.run_whole()
Data files can be downloaded here:
https://babyam.andrew.cmu.edu/files/macposts/data/siouxfalls.zip
—
Reply to this email directly, view it on GitHub
https://github.com/maccmu/macposts/issues/66#issuecomment-2179601207,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABXEA7J34F2SKFJFHAT7SZTZIINRHAVCNFSM6AAAAABJOYTARCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNZZGYYDCMRQG4
.
You are receiving this because you commented.Message ID:
@.***>


[BEAM-7389] Use includes for buttons

There are no changes to the actual content, just simplified the docs through includes. This also required updating the md2ipynb script to support Jekyll/Liquid syntax for some constructs.
R: @aaltay , @rosetn
Filter:
Staged: http://apache-beam-website-pull-requests.storage.googleapis.com/9661/documentation/transforms/python/elementwise/filter/index.html
Notebook: https://colab.research.google.com/github/davidcavazos/beam/blob/include-buttons/examples/notebooks/documentation/transforms/python/element-wise/filter-py.ipynb
FlatMap:
Staged: http://apache-beam-website-pull-requests.storage.googleapis.com/9661/documentation/transforms/python/elementwise/flatmap/index.html
Notebook: https://colab.research.google.com/github/davidcavazos/beam/blob/include-buttons/examples/notebooks/documentation/transforms/python/element-wise/flatmap-py.ipynb

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[x] Choose reviewer(s) and mention them in a comment (R: @username).
[x] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[x] If this contribution is large, please file an Apache Individual Contributor License Agreement.

This will need updating if #9664 merges first

LGTM


set mouse cursor using a Cursor object

This pull request is to solve issue #2839
Basically problem is that currently calling Gdx.input.setCursorImage will create a new (lwjgl) Cursor object everytime, even if pixmaps are identical + it will make some calculations to process the Pixmap.
This is ok if only a few setCursorImage call are made, but if the application requires to cycle a lot through a few cursors then it will eventually crash on Windows (invisible cursor) and also use unecessary memory + cpu.
This pull request adds a new Cursor object that can be created by calling Gdx.input.newCursor, and set anytime using Gdx.input.setCursor, when using this method no other object are created when calling Gdx.input.setCursor. It kinda provides a way for the user to use a cache for cursor creation.
This is my very first pull request (first time using commit, push and pull request actually) and my first contribution to Libgdx. So if I made anything wrong don't hesitate to tell me, I will do my best to correct this.
There are two things I am not sure about:
1- I kept the old Gdx.input.setCursorImage for compatibility reasons, it will call newCursor/setCursor, maybe it should be noted deprecated or something...
2- The Gdx.input.setCursor method is not necessary as the Cursor object has a setCursor() function, I was thinking of removing it, but lept it to match current setCursorImage method and to provide an easy way to revert to default cursor (other way is to call newCursor with a null pixmap and use this cursor next). It's 50/50, so if you want me to remove it I can easily understand.

Looks ok to me. Usually I prefer just changing the API rather than leaving behind old methods, but I don't feel to strongly about it for this PR at the moment.

I'd actually go so far and put that stuff on Graphics and not Input, and
kill the old methods.
On Feb 14, 2015 12:25 AM, "Nathan Sweet"<EMAIL_ADDRESS>wrote:

Looks ok to me. Usually I prefer just changing the API rather than leaving
behind old methods, but I don't feel to strongly about it for this PR at
the moment.
—
Reply to this email directly or view it on GitHub
https://github.com/libgdx/libgdx/pull/2841#issuecomment-74345212.

Moving it to graphics could make sense since it's a graphical stuff, only (small) problem is that everything related to mouse is in input, but setting a cursor is not "input" per se
So if you are ok to do this kind of refactoring (and losing compatibility with previous version), then I can move to graphics the newCursor function and only keep this one.

I don't have a strong preference on input versus graphics.

Here is a proposal: the old function Input.setCursorImage is removed, and there is just a new function in Graphics called newCursor.
It might be a little cleaner, but it looses compatibility with old code.
What was
Gdx.input.setCursorImage(pixmap, 16, 16);

Would become
Gdx.graphics.newCursor(pixmap, 16, 16).setSystemCursor();

Or (if not checking platform beforehand)
Cursor cursor = Gdx.graphics.newCursor(pixmap, 16, 16);
if (cursor != null)
	cursor.setSystemCursor();

In my opinion we shouldn't remove previous api function, so I can put it back but it will just call the new one in Graphics (and maybe mark it as deprecated and removed in a future api version). What do you think?

I wonder if resetting to the default cursor shouldn't be a function in Input instead of having to create a Cursor with a null Pixmap. Personally I would have kept the setCursor function in Input and just moved the Cursor part to Graphics.

I prefer newCursor and setCursor over the Cursor knowing how to set itself.
Don't deprecate methods, just make the API changes. Otherwise we have junk laying around that needs to be cleaned up later, and it probably won't be.

Sorry, forgot to comment after my last commit
So what changes from actual API:

Everything related to cursor has been moved to Gdx.graphics (as it's graphical stuff anyway)
setCursorImage has been removed
To create a "cursor image" one must use Gdx.graphics.newCursor(pixmap, x, y)
To set a cursor image Gdx.graphics.setCursor(cursor)
To revert to default cursor Gdx.graphics.setCursor(null)

The following code in 1.5:
Gdx.input.setCursorImage(pixmap, 16, 16);

Now becomes:
Cursor cursor = Gdx.graphics.newCursor(pixmap, 16, 16);
Gdx.graphics.setCursor(cursor);

or just:
Gdx.graphics.setCursor(Gdx.graphics.newCursor(pixmap, 16, 16));

If someone wants to change cursor multiple times then first syntax is best as he can reuse the cursor object. Second syntax will behave like current implementation (can loose cursor under Windows, and creates temporary objects)

I just ran across the bug this PR fixes, and I suppose there's no decent workaround without this PR in the current release?

Just updated a bit the javadoc, I stumbled upon a problem on Linux + Intel card + vsync disabled. http://www.badlogicgames.com/forum/viewtopic.php?f=11&t=18997&p=79785
Basically, don't change the cursor too often in a small time frame, system or driver might not like that

What's missing on this PR to get it merged? We found this problem today as well...

I don't want to be annoying, but we really need this fixed, and we are open to finish the work ourselves, if there is anything to fix...

Looks fine, just needs a rebase to 1 commit and to be tested on all major OS.

If it helps, we've published a game on Steam with this patch applied, and so far, so good. Having the cursor disappear randomly on Windows was a real problem...
If @haedri is busy, I'll try to do the rebase. Not sure how to do the testing (besides what we're actually doing, of course) or even if somebody outside the team should do it :)
Thanks for the reply @Tom-Ski!

Sounds good.
Just anyone that can, I've run on Windows and ubuntu, has anyone covered mac side of things?

I'll let you know after I do more testing just in case, but I've been running for a while with the patch with no obvious bad effects.

I can't do the rebase right now (at work), but I can try in a few hours (I never did a rebase before, my understanding is that it's some sort of merge, so shouldn't be too hard)
For my game I've tested Windows/Linux/Mac(Yosemite), no regression so far

Awesome, I'll wait for you to do it then :smiley:

The rebase was a bit harder than I thought, I think I messed up some commits a few months ago
So I did a full reset and added back the modifications (which closed the PR, sorry for that), it seems a lot cleaner now
I have also added a simple test case that switches between two cursors every frame (and displays a third one on touch)
Tested on (I let the test run a few minutes to make sure everything fine on all platforms)

Mac OS (Mac mini, Yosemite)
Linux 64 bits (Xubuntu 14.14)
Windows XP 32 bits (VM Virtualbox)
Windows 7 64 bits

Forgot to reply, but I haven't found any problems with it either.

Who wants to review and merge this, taking all responsibility for it working correctly? Could also use a blog post on any breaking changes.

Can we merge this already? Not sure if @NathanSweet was asking for someone inside LibGDX to take responsibility for it, or for someone outside, but in any case we've been running with this patch in our released game with no reports of it breaking anything mouse related.

test this please

We can also support custom cursors on the gwt-backend.
Change in GwtGraphics.java
    @Override
	public Cursor newCursor (Pixmap pixmap, int xHotspot, int yHotspot) {
		return null;
	}

	@Override
	public void setCursor (Cursor cursor) {
	}

to
    @Override
	public Cursor newCursor (Pixmap pixmap, int xHotspot, int yHotspot) {
		return new GwtCursor(pixmap, xHotspot, yHotspot);
	}

	@Override
	public void setCursor (Cursor cursor) {
		if (cursor == null) {
			GwtCursor.resetCursor();
		} else {
			cursor.setSystemCursor();
		}
	}

and add
/*******************************************************************************
 * Copyright 2011 See AUTHORS file.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 ******************************************************************************/

package com.badlogic.gdx.backends.gwt;

import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Cursor;
import com.badlogic.gdx.graphics.Pixmap;
import com.badlogic.gdx.utils.GdxRuntimeException;
import com.google.gwt.dom.client.CanvasElement;

public class GwtCursor implements Cursor {
	protected String cssCursorProperty;

	public GwtCursor (Pixmap pixmap, int xHotspot, int yHotspot) {
		if (pixmap == null) {
			this.cssCursorProperty = "auto";
			return;
		}

		if ((pixmap.getWidth() & (pixmap.getWidth() - 1)) != 0) {
			throw new GdxRuntimeException("Cursor image pixmap width of " + pixmap.getWidth()
				+ " is not a power-of-two greater than zero.");
		}

		if ((pixmap.getHeight() & (pixmap.getHeight() - 1)) != 0) {
			throw new GdxRuntimeException("Cursor image pixmap height of " + pixmap.getHeight()
				+ " is not a power-of-two greater than zero.");
		}

		if (xHotspot < 0 || xHotspot >= pixmap.getWidth()) {
			throw new GdxRuntimeException("xHotspot coordinate of " + xHotspot + " is not within image width bounds: [0, "
				+ pixmap.getWidth() + ").");
		}

		if (yHotspot < 0 || yHotspot >= pixmap.getHeight()) {
			throw new GdxRuntimeException("yHotspot coordinate of " + yHotspot + " is not within image height bounds: [0, "
				+ pixmap.getHeight() + ").");
		}
		StringBuilder stringBuilder = new StringBuilder("url('");
		stringBuilder.append(pixmap.getCanvasElement().toDataUrl("image/png"));
		stringBuilder.append("')");
		stringBuilder.append(xHotspot);
		stringBuilder.append(" ");
		stringBuilder.append(yHotspot);
		stringBuilder.append(",auto");
		this.cssCursorProperty = stringBuilder.toString();
	}

	@Override
	public void setSystemCursor () {
		((GwtApplication)Gdx.app).graphics.canvas.getStyle().setProperty("cursor", cssCursorProperty);
	}

	public static void resetCursor () {
		((GwtApplication)Gdx.app).graphics.canvas.getStyle().setProperty("cursor", "auto");
	}
}
	}

	@Override
	public void setSystemCursor () {
		((GwtApplication)Gdx.app).graphics.canvas.getStyle().setProperty("cursor", cssCursorProperty);
	}

	public static void resetCursor () {
		((GwtApplication)Gdx.app).graphics.canvas.getStyle().setProperty("cursor", "auto");
	}
}

Lets do it!

PR welcome for gwt support @intrigus


Setting default apps.

I have installed Irfanview and want to set that as my default app. But Windows's Default Apps settings isn't allowing for third party apps anymore. Can you please enable registration for Windows apps?
With much gratitude for saving hours and hours of installation time for me, Pan

it seems you need a setup script for irfanview, request it in the extras bucket.


[FLINK-7706] [flip6] Add JobAccumulatorsHandler for new REST endpoint

What is the purpose of the change
Port JobAccumulatorsHandler to REST endpoint
Brief change log

Add JobAccumulatorsInfo class to describe the JSON format response
Add JobAccumulatorsHandler to deal with back pressure in rest server

Verifying this change
This change added tests and can be verified as follows:

JSON marshalling is tested via JobAccumulatorsInfoTest.

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (yes / no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (yes / no)
The serializers: (yes / no / don't know)
The runtime per-record code paths (performance sensitive): (yes / no / don't know)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: (yes / no / don't know)

Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)

@tillrohrmann,  could you please take a look? :)


@thi.ng/shader-ast-stdlib The worley2 HOF doesn't provide a way to change the name in generated code

I'd like to be able to use both worleyDist and WorleyDistManhattan in the same program, but when I attempt to do so the generated code results in this error:
Uncaught Error: WebGL: Error compiling shader:
line 76: 'worley2' : function already has a body

I see that the additive HOF provides a way to override the name used in the generated code - perhaps we could do the same here?
(If there's a technique to avoid this, please let me know.)

Thanks @JeffreyPalmer - I updated all higher order functions in this package and will do a new release later today...

Just a heads up, @JeffreyPalmer that I did release the fix last night. Let me know if this helps and thanks again for reporting! :)

Thanks @postspectacular! I saw that and have already incorporated the change in my code. Everything is working perfectly. 🙏


Grails 2.0 Unit tests

Just trying up upgrade my project to Grails 2.0 and run into a problem with this plugin.
Some of my domain classes share a need for complicated validation, so I use your plugin to extract it to a common constraint. However when running my unit tests in Grails 2.0 I get:
java.lang.IllegalArgumentException: ServletContext must not be null
When I attempt to construct a Domain class with this custom constraint. If I comment out the constraint, everything works fine.

Would it be possible to share the constraint that's causing the issue? I just upgraded the plugin to Grails 2.0 and all the tests pass and my little sample app works as well.
Thanks.

I don't think it's the constraint itself that is causing the problem as I removed all the code from inside it and the tests still fail. I can try to produce a small app that has the issue?

@jamescookie That would be great to get a small app to produce the issue.

So I tried (a lot) to reproduce this in a small app, but found I couldn't. After recreating most of my original app in the new one, I finally tracked down the problem to some methods in the Domain object's controller that needed to be made private. I have lost the will to live trying to figure out how that could possibly make my unit tests fail. I am happy to close this issue as I'm sure it's something other than this plugin causing the problems.

@jamescookie While I'm glad the plugin didn't cause it, I feel your pain.


Is it possible to use RepoParser to get the x, y, z and island of a npc neuitem?

like this
package io.github.moulberry.repo.data;
public class NEUItem {
// ...
int x;
int y;
int z;
String island;
// ...
}

Not a thing right now, but this is something that should be added. Ideally I could've made this easier on you by just providing a Map with not parsed data, but this is something that gson sadly does not support out of the box.


Array case sensitivity problem in ParamaterContainer

Just a small typo fix in Adapter\ParameterContainer::setFromArray(Array $array) method. Array should be in lowercase.

Just a quick note: the PHP engine doesn't care about the case in this situation, as this is a keyword. While it should be lowercase, it's not required. We'll still merge #103, though.

Thanks Matthew :)

Fixed with #103


split up JuttleMoment

Currently, the JuttleMoment class serves several purposes. It contains static functions that implement operations on moments and durations, but it can also be used to wrap either a moment.js moment or a moment.js duration.
This means that determining the actual type of one of these objects requires first checking that the object is an instanceof JuttleMoment and then checking whether it contains either a moment or a duration field to determine what its actual type is.
It would improve the code quality if JuttleMoment were refactored to split out the static functions into a TimeOperations or analogous module that implements the operations logic on moments and durations.
Then we would create a JuttleDuration class as an analog of JuttleMoment. This would always wrap a moment.js duration, and the remaining JuttleMoment class would always wrap a moment.js moment. This would simplify instanceof queries and remove a bunch of the conditional logic from things like valueOf(), etc
Another option would be to avoid creating a wrapper object altogether for moments or durations. Moments would be represented as a moment.js moment or maybe even a Javascript Date. The latter would be easier to work with for adapters and when sending data to client-side views but would be more complicated to implement the time operations. Durations would still be implemented as moment.js durations.

Same as https://github.com/juttle/juttle/issues/109.