Wagtail 4.0 update

This PR fixes some warnings and does the following:

Removed usage of the deprecated distutils.
Added new variables in settings to suppress warnings.
Fixed formatting, removed unused imports.
Updated workflow action versions.
Updated documentation.

Testing

Tests pass
There are some remaining warnings with regards to models.

Found 175 test(s).
Creating test database for alias 'default'...
System check identified some issues:

WARNINGS:
tests.LinkPage: (wagtailsearch.W001) Core Page fields missing in `search_fields`
        HINT: Ensure that LinkPage extends the Page model search fields `search_fields = Page.search_fields + [...]`
wagtailmenus.FlatMenu: (wagtailadmin.W002) FlatMenu.content_panels will have no effect on modeladmin editing
        HINT: Ensure that FlatMenu uses `panels` instead of `content_panels`or set up an `edit_handler` if you want a tabbed editing interface.
There are no default tabs on non-Page models so there will be no Content tab for the content_panels to render in.
wagtailmenus.FlatMenu: (wagtailadmin.W002) FlatMenu.settings_panels will have no effect on modeladmin editing
        HINT: Ensure that FlatMenu uses `panels` instead of `settings_panels`or set up an `edit_handler` if you want a tabbed editing interface.
There are no default tabs on non-Page models so there will be no Settings tab for the settings_panels to render in.
wagtailmenus.MainMenu: (wagtailadmin.W002) MainMenu.content_panels will have no effect on modeladmin editing
        HINT: Ensure that MainMenu uses `panels` instead of `content_panels`or set up an `edit_handler` if you want a tabbed editing interface.
There are no default tabs on non-Page models so there will be no Content tab for the content_panels to render in.
wagtailmenus.MainMenu: (wagtailadmin.W002) MainMenu.settings_panels will have no effect on modeladmin editing
        HINT: Ensure that MainMenu uses `panels` instead of `settings_panels`or set up an `edit_handler` if you want a tabbed editing interface.
There are no default tabs on non-Page models so there will be no Settings tab for the settings_panels to render in.

System check identified 5 issues (0 silenced).
...............................................................................................................................................................................
----------------------------------------------------------------------
Ran 175 tests in 15.778s

OK
Destroying test database for alias 'default'...
Name                                                                Stmts   Miss  Cover
---------------------------------------------------------------------------------------
wagtailmenus/__init__.py                                               17      4    76%
wagtailmenus/apps.py                                                    4      0   100%
wagtailmenus/conf/__init__.py                                           0      0   100%
wagtailmenus/conf/constants.py                                          2      0   100%
wagtailmenus/conf/defaults.py                                          30      0   100%
wagtailmenus/conf/settings.py                                           5      0   100%
wagtailmenus/conf/tests/__init__.py                                     0      0   100%
wagtailmenus/conf/tests/test_modeladmin_disable_settings.py            27      0   100%
wagtailmenus/context_processors.py                                     24      0   100%
wagtailmenus/development/__init__.py                                    0      0   100%
wagtailmenus/development/urls.py                                        9      9     0%
wagtailmenus/errors.py                                                  6      0   100%
wagtailmenus/forms.py                                                  13      0   100%
wagtailmenus/management/__init__.py                                     0      0   100%
wagtailmenus/management/commands/__init__.py                            0      0   100%
wagtailmenus/management/commands/autopopulate_main_menus.py            18      2    89%
wagtailmenus/managers.py                                                4      0   100%
wagtailmenus/migrations/0001_initial.py                                 6      0   100%
wagtailmenus/migrations/0002_auto_20160129_0901.py                      5      0   100%
wagtailmenus/migrations/0003_auto_20160129_2339.py                      5      0   100%
wagtailmenus/migrations/0004_auto_20160130_0024.py                      5      0   100%
wagtailmenus/migrations/0005_auto_20160130_2209.py                      5      0   100%
wagtailmenus/migrations/0006_auto_20160131_1347.py                      5      0   100%
wagtailmenus/migrations/0007_auto_20160131_2000.py                      5      0   100%
wagtailmenus/migrations/0008_auto_20160131_2327.py                      5      0   100%
wagtailmenus/migrations/0009_auto_20160201_0859.py                      5      0   100%
wagtailmenus/migrations/0010_auto_20160201_1558.py                      5      0   100%
wagtailmenus/migrations/0011_auto_20160415_1519.py                      5      0   100%
wagtailmenus/migrations/0012_auto_20160419_0039.py                      6      0   100%
wagtailmenus/migrations/0013_auto_20160423_1124.py                      5      0   100%
wagtailmenus/migrations/0014_auto_20160423_1339.py                      5      0   100%
wagtailmenus/migrations/0015_auto_20160423_1348.py                      5      0   100%
wagtailmenus/migrations/0016_auto_20160930_0645.py                      5      0   100%
wagtailmenus/migrations/0017_auto_20161013_1658.py                      6      0   100%
wagtailmenus/migrations/0018_auto_20161204_2043.py                      5      0   100%
wagtailmenus/migrations/0019_auto_20161204_2143.py                      5      0   100%
wagtailmenus/migrations/0020_auto_20161210_0004.py                      6      0   100%
wagtailmenus/migrations/0021_auto_20170106_2352.py                      5      0   100%
wagtailmenus/migrations/0022_auto_20170913_2125.py                      5      0   100%
wagtailmenus/migrations/0023_remove_use_specific.py                     4      0   100%
wagtailmenus/migrations/__init__.py                                     0      0   100%
wagtailmenus/modeladmin.py                                             70      1    99%
wagtailmenus/models/__init__.py                                         3      0   100%
wagtailmenus/models/menuitems.py                                       85      7    92%
wagtailmenus/models/menus.py                                          549     15    97%
wagtailmenus/models/mixins.py                                          42      0   100%
wagtailmenus/models/pages.py                                          124      7    94%
wagtailmenus/panels.py                                                 31      2    94%
wagtailmenus/settings/__init__.py                                       0      0   100%
wagtailmenus/settings/base.py                                          22      0   100%
wagtailmenus/settings/development.py                                    9      9     0%
wagtailmenus/settings/testing.py                                       11      0   100%
wagtailmenus/templatetags/__init__.py                                   0      0   100%
wagtailmenus/templatetags/menu_tags.py                                 61      2    97%
wagtailmenus/tests/__init__.py                                          0      0   100%
wagtailmenus/tests/base.py                                             70      2    97%
wagtailmenus/tests/migrations/0001_initial.py                           7      0   100%
wagtailmenus/tests/migrations/0002_homepage.py                          6      0   100%
wagtailmenus/tests/migrations/0003_auto_20160418_1204.py                5      0   100%
wagtailmenus/tests/migrations/0004_auto_20160419_2022.py                5      0   100%
wagtailmenus/tests/migrations/0005_auto_20160419_2025.py                5      0   100%
wagtailmenus/tests/migrations/0006_auto_20160423_1339.py                5      0   100%
wagtailmenus/tests/migrations/0007_auto_20160423_1348.py                5      0   100%
wagtailmenus/tests/migrations/0008_contactpage.py                       6      0   100%
wagtailmenus/tests/migrations/0009_typicalpage.py                       6      0   100%
wagtailmenus/tests/migrations/0010_auto_20161211_2116.py                9      0   100%
wagtailmenus/tests/migrations/0011_auto_20170106_2355.py                5      0   100%
wagtailmenus/tests/migrations/0012_linkpage.py                          6      0   100%
wagtailmenus/tests/migrations/0013_auto_20170630_1002.py                5      0   100%
wagtailmenus/tests/migrations/0014_noabsoluteurlspage.py                6      0   100%
wagtailmenus/tests/migrations/0015_remove_use_specific.py               4      0   100%
wagtailmenus/tests/migrations/0016_articlelistpage_articlepage.py       6      0   100%
wagtailmenus/tests/migrations/__init__.py                               0      0   100%
wagtailmenus/tests/modeladmin.py                                        5      5     0%
wagtailmenus/tests/models/__init__.py                                   2      0   100%
wagtailmenus/tests/models/menus.py                                     38      2    95%
wagtailmenus/tests/models/pages.py                                    111      5    95%
wagtailmenus/tests/models/utils.py                                     13      0   100%
wagtailmenus/tests/test_backend.py                                    150      3    98%
wagtailmenus/tests/test_base_menu_classes.py                           44      2    95%
wagtailmenus/tests/test_childrenmenu_class.py                          11      0   100%
wagtailmenus/tests/test_commands.py                                    35      2    94%
wagtailmenus/tests/test_custom_models.py                              107      0   100%
wagtailmenus/tests/test_flatmenu_class.py                              46      0   100%
wagtailmenus/tests/test_hooks.py                                       61      4    93%
wagtailmenus/tests/test_mainmenu_class.py                              87      1    99%
wagtailmenus/tests/test_menu_class.py                                  48      0   100%
wagtailmenus/tests/test_menu_items.py                                  83      2    98%
wagtailmenus/tests/test_menu_rendering.py                             252      2    99%
wagtailmenus/tests/test_page_models.py                                 69      2    97%
wagtailmenus/tests/test_sectionmenu_class.py                           16      0   100%
wagtailmenus/tests/test_test_page_models.py                            27      0   100%
wagtailmenus/tests/urls.py                                              6      0   100%
wagtailmenus/tests/utils.py                                            26      4    85%
wagtailmenus/utils/__init__.py                                          0      0   100%
wagtailmenus/utils/deprecation.py                                       5      5     0%
wagtailmenus/utils/inspection.py                                        9      9     0%
wagtailmenus/utils/misc.py                                             74      5    93%
wagtailmenus/utils/tests/__init__.py                                    0      0   100%
wagtailmenus/utils/tests/test_misc.py                                 114      3    97%
wagtailmenus/utils/version.py                                          13      2    85%
wagtailmenus/views.py                                                 121      4    97%
wagtailmenus/wagtail_hooks.py                                          15      2    87%
---------------------------------------------------------------------------------------
TOTAL                                                                3033    124    96%

@katdom13 I have included some items from this PR in https://github.com/jazzband/wagtailmenus/pull/443 please let me know if you see something I missed. Thanks

@nickmoreton @katdom13 is this issue ok to close? any of these changes still applicable?


404 errors

Hi i am looking at few 404 errors for the filter i have attached the screenshot for the same

These are momentary and you can ignore these.


Development: Remove internal Athene tracking of text assessments

Checklist
General

[X] This is a small issue that I tested locally and was confirmed by another developer on a test server.
[X] I chose a title conforming to the naming conventions for pull requests.

Server

[X] Important: I implemented the changes with a very good performance and prevented too many (unnecessary) database calls.
[X] I followed the coding and design guidelines.
[ ] I added multiple integration tests (Spring) related to the features (with a high test coverage).

Client

[X] Important: I implemented the changes with a very good performance, prevented too many (unnecessary) REST calls and made sure the UI is responsive, even with large data.
[X] I followed the coding and design guidelines.
[ ] I added multiple integration tests (Jest) related to the features (with a high test coverage), while following the test guidelines.

Motivation and Context

A text assessment tracking feature was introduced in #1719. It sends the following events to an Athena service:

start: Sent when a tutor starts assessing a text exercise
save: Sent when a tutor saves their assessment
submit: Sent when a tutor submits their assessment

We already have the text_assessment_events, which track these kinds of events in Artemis directly. Also, the existing Athene tracking hasn't been actively used in the last 1-2 years.
Therefore, we remove the Athene tracking functionality in this PR. This also helps bring us closer to a clean integration of Athena-New by reducing coupling between the existing Athene service and Artemis.
Description

I removed all code that was related to Athene tracking. This includes the three events named above in the client. An authorization header for the Athene tracking service was transmitted directly. This token is now also removed.
Steps for Testing

Prerequisites:

1 Instructor
2 Students
1 Programming Exercise with Complaints enabled

Log in to Artemis
Navigate to Course Administration
...

Exam Mode Testing

Prerequisites:

1 Instructor
2 Students
1 Exam with a Programming Exercise

Log in to Artemis
Participate in the exam as a student
Make sure that the UI of the programming exercise in the exam mode stays unchanged. You can use the exam mode documentation as reference.
...

Review Progress

Performance Review

[ ] I confirm that the client changes (in particular related to REST calls and UI responsiveness) are implemented with a very good performance
[ ] I confirm that the server changes (in particular related to database calls) are implemented with a very good performance

Code Review

[ ] Code Review 1
[ ] Code Review 2

Manual Tests

[ ] Test 1
[ ] Test 2

Exam Mode Test

[ ] Test 1
[ ] Test 2

Test Coverage

Screenshots

Codecov Report

Merging #6764 (a8e9d92) into develop (9d7c6f0) will decrease coverage by 0.01%.
The diff coverage is 100.00%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files
@@              Coverage Diff              @@
##             develop    #6764      +/-   ##
=============================================
- Coverage      80.38%   80.37%   -0.01%
+ Complexity     13947    13938       -9
=============================================
  Files           2448     2447       -1
  Lines          93440    93396      -44
  Branches       13118    13111       -7
=============================================
- Hits           75114    75070      -44
- Misses         10097    10103       +6
+ Partials        8229     8223       -6

Impacted Files
Coverage Δ

.../main/webapp/app/entities/text-submission.model.ts
100.00% <ø> (ø)

...p/exercises/text/assess/text-assessment.service.ts
84.33% <ø> (+6.78%)
:arrow_up:

...ext/assess/text-submission-assessment.component.ts
82.05% <ø> (-0.28%)
:arrow_down:

...rcises/text/participate/text-submission.service.ts
58.33% <ø> (-20.05%)
:arrow_down:

.../www1/artemis/web/rest/TextAssessmentResource.java
80.73% <100.00%> (-0.35%)
:arrow_down:

.../www1/artemis/web/rest/TextSubmissionResource.java
96.92% <100.00%> (+0.97%)
:arrow_up:

... and 2 files with indirect coverage changes

Flag
Coverage Δ

client
76.14% <ø> (-0.01%)
:arrow_down:

server
84.93% <100.00%> (-0.02%)
:arrow_down:

Continue to review full report in Codecov by Sentry.

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


Assess the need for the version to be displayed

Summary
Assess the need for the version to be displayed in the top navigation on the website
💬 Description
Currently the version is a manually edited figure, what should it represent? Do we still need it? Should it be tied to the version of the components? If so, this needs to be automatically updated from the package.json.

Links to https://github.com/mi6/ic-design-system/issues/361

Closed as work complete in separate ticket.


Proficiencies should container a pointer to the referenced resource

Given a proficiency, I should be able to look up the referenced resource.
There should be an additional field on the proficiency resource:
"references": [{
  "name": "Dagger",
  "type": "equipment",
  "url": "/api/equipment/dagger"
}]

Examples:

the daggers proficiency should contain a reference to the dagger equipment
the martial weapons proficiency should contain a reference to the martial weapons equipment category
the acrobatics proficiency should contain a reference to the acrobatics skill

I'll take this one, but can't assign to myself

Assigned to you! Also, closing out since you did an awesome job of handling it!


[FEATURE] Consider supporting Iterable / Stream / etc as a return type of AI Services

Currently streaming in AI Services can be only done using TokenStream.
Consider supporting other types like Iterable<String> / Stream<String> / etc.

Related: https://github.com/langchain4j/langchain4j/issues/886


Shake for Cabal Packages with setup-depends

With setup-depends finally on the horizon (see http://www.well-typed.com/blog/2015/07/cabal-setup-deps/), it seems like it would be possible to use Shake to build a cabal package.
What needs to be done to make this as convenient as possible? I have little Shake or custom Setup.hs experience, but it seems like there would be a bunch of boilerplate (command line argument parsing, etc) that could be put in Shake (or an additional library)

I guess the first question is why you would want to use Shake to build a Cabal package rather than the normal ghc --make? If it's pure Haskell and Cabal can already build the package I can't see much advantage to using Shake. By identifying where Shake is of benefit, we might be able to tune what we are aiming for. I suspect the first thing to doing this well is for someone to try it and see what is hard, and probably write up a blog post giving a "how to" guide.

Fair enough regarding ghc --make. Certainly for pure Haskell this is overkill, and most packages that aren't are wrapping some legacy library whose build system is not worth messing with. But I'd imagine that there are packages that might use make or shake or something else today (especially with cabal's support for make) and aren't wrapping a legacy library. I'd say it's both nicer to user shake than make etc, and cleaner to leverage Setup.hs than shell out to yet another process.
If that comes off as a flimsy rational, my "ulterior motive" is that I've been thinking about using this and the new shake-based build system for a quick-and-dirty way to make GHC buildable from cabal.

Generally, build systems shell out to 100's of processes anyway, so reducing one shell out makes little difference. Perhaps for a few projects, but I doubt there are that many large projects using Cabal as their outer shell, which don't just write their own top-level command.
However, your ulterior motive seems awesome! I would like that a lot!!! Ping @snowleopard who is currently porting the GHC build system to Shake.

Hi there!
At the moment I do build GHC library packages (array, base, etc.) using Shake but I don't know whether my solution will be able to handle other Cabal packages. Maybe it will handle some, maybe it will be not too difficult to generalise it for building any Cabal package. I will discuss this with @ndmitchell next week when I will be in Cambridge (Neil, I hope you will be there?).

Generally, build systems shell out to 100's of processes anyway, so reducing one shell out makes little difference. Perhaps for a few projects, but I doubt there are that many large projects using Cabal as their outer shell, which don't just write their own top-level command.

Ah, I didn't mean the dynamic cost of forking processes, but rather the syntactic overhead marshaling argv etc in Setup.hs vs just using shake directly. Also, Cabal doesn't know how to build executables needed for the build process (e.g. Alex, Happy). In other words my concern is, elegance, not performance.
@snowleopard First of all, I haven't taken a good look at your's or the old GHC build system, so take this with a grain of salt.
For now, I'm just thinking of writing a dummy package to build all of GHC-the-executable: It wouldn't have any interesting or meaningful dependencies, just a custom Setup.hs which would import your shake work to kick off the build.
Once that is done, there are some interesting thing to pursue. As that article I linked hints at, the changes to the constraint solver will finally allow Cabal to understand bootstrapping: packages can use a different version of itself to satisfy a compile time dependency. Maybe it's possible to let cabal manage the "cyclic" GHC->GHC dependency, and shake manage the acyclic dependencies within GHC.
Finally, it would be cool to cabalize array, base, etc individually. This would I assume mean rewriting a good bit of your work somewhat by splitting a single Shake build system into one for each of those packages. Hopefully Cabal can be made smart enough to understand all the dependencies between those packages.

Thanks, this sounds very interesting. We can certainly try to reuse (parts of) the new Shake-based build system in the way you suggest. It's not ready yet but I'll let you know once I have a working prototype and will also be happy to help understanding it.

Sweet! I'm pretty busy with school but would love to take a peek at such a prototype with the time I have.

I don't think there's any concrete steps to make the setup-depends work nicely, so I'll leave it for now, and we can revisit once GHC installs with Shake. The other option would be to get Stack to integrate this nicely, so you could stack setup --ghc-head or similar.


Repo sync for protected CLA branch

The pull request is created from master637522246871047140 to master to fix git push error for protected CLA branch

@ghogen : Thanks for your contribution! The author(s) have been notified to review your proposed change.


[DSIP-27] Deprecate write java code in JAVA task

Search before asking

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

Motivation
Right now, we support two kind of usage of JAVA tasks,

The first type is JAVA, user can write java code, once  the worker receive this kind of task, it will compile the java code to class, and then execute the class file.
The second type is JAR, user can submit a fat jar, once the worker receive this kind of task, it will directly execute the fat jar.
This issue is want to remove the first type of JAVA task, since this is more like a demo, no one will submit java code, and in most of the time, the java application is not written within one file.
So we only need to support submit Jar.
Design Detail
Further more, we would better support user submit jars rather than a fat jar. The command may look like below, this should be more usefully
java $JAVA_OPTS \
  -Dxx.yy.args=1 \
  -cp "xx.jar":"xx.conf" \
  xx.Application args

So we need to change the current task mode into: Fat JAR, NORMAL JAR
Compatibility, Deprecation, and Migration Plan
This is not compatible with the current version.
Test Plan
Add unit test.
Are you willing to submit a PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

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

LGTM

The DSIP has been added to OSPP, no further development needs to be specified.

How about this

Remove the selection boxes for Run Type, and add dependency package parameters. If this parameter is empty, it means fat jar, and if it is not empty, it means normal jar.
Add Main class parameters.

The DSIP has been added to OSPP, no further development needs to be specified.

Why can this be added to OSPP so casually? OSPP has a very long end time, which will block releases.

The DSIP has been added to OSPP, no further development needs to be specified.

Why can this be added to OSPP so casually? OSPP has a very long end time, which will block releases.

I apologize for not explaining in advance. Initially, I thought it wasn't a highly important feature, just a few versions of delay.

LGTM, In addition, We should be cautious about adding new tasks in the future, and try to receive enough votes and requests to add new tasks.

Please assign to me

I am a student selected in this OSPP, and here is part of my implementation plan.
1. Delete the Java type
If you want to add a new task type, you need to first delete the related code of the Java type from the previous task types.

For example, this piece of code first determines whether it is a Java type. You can use this as a starting point to delete the JAVA type and leave a mark. Later, you can add the Normal Jar type.
By the same token, in all related places, first delete the code of the Java type task, including calls, uses, etc. By the way, record the position. After deletion is complete and other functions are normal, add the Normal jar type at these recorded places.
2. Partial implementation of the Normal Jar type
First, we need to add a new constant in the JavaConstants class to represent the NORMAL JAR task type:
// Original code
public class JavaConstants {
    public static final String RUN_TYPE_JAVA = "JAVA";
    public static final String RUN_TYPE_JAR = "JAR";
}

// New code
public class JavaConstants {
    public static final String RUN_TYPE_JAVA = "JAVA";
    public static final String RUN_TYPE_JAR = "JAR";
    public static final String RUN_TYPE_NORMAL_JAR = "NORMAL_JAR";  // New constant
}

Then, update the checkParameters method in the JavaParameters class to accept the new run type:
// Original code
public class JavaParameters extends AbstractParameters {
    // ...
    public boolean checkParameters() {
        return runType != null && (runType.equals(JavaConstants.RUN_TYPE_JAVA) || runType.equals(JavaConstants.RUN_TYPE_JAR));
    }
}

// New code
public class JavaParameters extends AbstractParameters {
    // ...
    public boolean checkParameters() {
        return runType != null && (runType.equals(JavaConstants.RUN_TYPE_JAVA) || runType.equals(JavaConstants.RUN_TYPE_JAR) || runType.equals(JavaConstants.RUN_TYPE_NORMAL_JAR));  // Updated condition
    }
}

Update the handle method in the JavaTask class to handle the new run type. This may involve adding a new method, such as buildNormalJarCommand, to build the command to execute the NORMAL JAR task:
// Original code
public class JavaTask extends AbstractTask {
    // Other code
    @Override
    public void handle(TaskCallBack taskCallBack) throws TaskException {
        // Other code
        switch (javaParameters.getRunType()) {
            case JavaConstants.RUN_TYPE_JAVA:
                command = buildJavaCommand();
                break;
            case JavaConstants.RUN_TYPE_JAR:
                command = buildJarCommand();
                break;
            default:
                throw new RunTypeNotFoundException("run type is required, but it is null now.");
        }
        // Other code
    }
}

// New code
public class JavaTask extends AbstractTask {
    // Other code
    @Override
    public void handle(TaskCallBack taskCallBack) throws TaskException {
        // ...
        switch (javaParameters.getRunType()) {
            case JavaConstants.RUN_TYPE_JAVA:
                command = buildJavaCommand();
                break;
            case JavaConstants.RUN_TYPE_JAR:
                command = buildJarCommand();
                break;
            case JavaConstants.RUN_TYPE_NORMAL_JAR:  // New case
                command = buildNormalJarCommand();  // New method
                break;
            default:
                throw new RunTypeNotFoundException("run type is required, but it is null now.");
        }
        // ...
    }

    // New method
   protected String buildNormalJarCommand() {
    // Get the absolute path of the JAR file
    ResourceContext resourceContext = taskRequest.getResourceContext();
    String mainJarAbsolutePathInLocal = resourceContext
            .getResourceItem(javaParameters.getMainJar().getResourceName())
            .getResourceAbsolutePathInLocal();

    // Build the command
    StringBuilder builder = new StringBuilder();
    builder.append(getJavaCommandPath())
           .append("java").append(" ")
           .append(buildResourcePath()).append(" ")
           .append("-cp").append(" ")
           .append(taskRequest.getExecutePath()).append(FOLDER_SEPARATOR)
           .append(mainJarAbsolutePathInLocal).append(" ")
           .append(javaParameters.getMainClass()).append(" ")  // Main class name
           .append(javaParameters.getMainArgs().trim()).append(" ")  // Main class parameters
           .append(javaParameters.getJvmArgs().trim());  // JVM parameters

    return builder.toString();
} }

This method first gets the absolute path of the JAR file, then builds a command to execute the NORMAL JAR task. This command includes the path of the Java command, the class path, the path of the JAR file, the main class name, the main class parameters, and the JVM parameters.

@ruanwenjun


Node debugging doesn't work in Web UI

testing https://github.com/microsoft/vscode/issues/85988:
When trying to debug a node.js program I get this error dialog:

and the DevTools console shows this:

The Web UI uses the .vscode-remote folder which contained some obsolete extensions that introduced the toggleAutoAttach command.
Emptying that folder made the problem disappear.


added file that tests components

Need to see what is the best way to test this. Just comparing the encoded output with the original may not work.
Example:
This is what orca returns on add.wat:
(component
  (core module (;0;)
    (type (;0;) (func))
    (type (;1;) (func (result i32)))
    (type (;2;) (func (param i32 i32)))
    (type (;3;) (func (param i32 i32 i32 i32) (result i32)))
    (type (;4;) (func (param i32 i32 i32 i32 i32 i32 i32 i32)))
    (type (;5;) (func (param i32 i32) (result i32)))
    (func (;0;) (type 5) (param i32 i32) (result i32)
      local.get 0
      local.get 1
      i32.add
    )
    (func (;1;) (type 0)
      i32.const 1
      i32.const 2
      call 1
      drop
      drop
    )
    (memory (;0;) 1)
    (export "add" (func 1))
    (export "memory" (memory 0))
  )
  (alias core export 0 "memory" (core memory (;0;)))
  (core instance (;0;) (instantiate 0))
  (@producers
    (processed-by "wit-component" "0.207.0")
  )
)

This is the original file:
(component
  (core module (;0;)
    (type (;0;) (func))
    (type (;1;) (func (result i32)))
    (type (;2;) (func (param i32 i32)))
    (type (;3;) (func (param i32 i32 i32 i32) (result i32)))
    (type (;4;) (func (param i32 i32 i32 i32 i32 i32 i32 i32)))
    (type (;5;) (func (param i32 i32) (result i32)))
    (func (;0;) (type 5) (param i32 i32) (result i32)
      local.get 0
      local.get 1
      i32.add
    )
    (func (;1;) (type 0)
      i32.const 1
      i32.const 2
      call 1
      drop
      drop
    )
    (memory (;0;) 1)
    (export "add" (func 1))
    (export "memory" (memory 0))
  )
  (core instance (;0;) (instantiate 0))
  (alias core export 0 "memory" (core memory (;0;)))
  (@producers
    (processed-by "wit-component" "0.207.0")
  )
)

There is a difference in the ordering of these lines:
core instance (;0;) (instantiate 0))
  (alias core export 0 "memory" (core memory (;0;)))

But they are semantically the same. A string compare of the encoded output and the original output fails. Maybe comparing the IR is a better approach?

test


Generated PDF issue

The PDF is also PNG? I can't select the text... It's basically a useless function unless I'm doing something wrong

Hello, I was a contributor once to this project and I see that liady stopped maintaining it. Because of that I have created my own version of the ChatGPT-pdf, called ChatgptToPdf, If you see that you have problems with this extension I invite you to try mine and see if your issues get fix, let's work together to improve it. Thank you!


Invalid certificate chain

Details
Our firewall is not letting some of the machines through to any docs in your service. This is due to the leaf certificate being listed twice in the certificate chain.
More details in the output of:
openssl s_client -connect readthedocs.io:443 -showcerts

Expected Result
→ openssl s_client -connect readthedocs.io:443
CONNECTED(00000003)
depth=3 /C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
verify error:num=19:self signed certificate in certificate chain
verify return:0
---
Certificate chain
 0 s:/OU=Domain Control Validated/OU=PositiveSSL Wildcard/CN=*.readthedocs.io
   i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Domain Validation Secure Server CA
 1 s:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Domain Validation Secure Server CA
   i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority
 2 s:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority
   i:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
 3 s:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
   i:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root

Actual Result
→ openssl s_client -connect readthedocs.io:443
CONNECTED(00000003)
depth=3 /C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
verify error:num=19:self signed certificate in certificate chain
verify return:0
---
Certificate chain
 0 s:/OU=Domain Control Validated/OU=PositiveSSL Wildcard/CN=*.readthedocs.io
   i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Domain Validation Secure Server CA
 1 s:/OU=Domain Control Validated/OU=PositiveSSL Wildcard/CN=*.readthedocs.io
   i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Domain Validation Secure Server CA
 2 s:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Domain Validation Secure Server CA
   i:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority
 3 s:/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Certification Authority
   i:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
 4 s:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
   i:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root

I think, you should not connect to readthedocs.io. it should be redirected to readthedocs.org
you should try to check <project_name>.readthedocs.io

Just to clarify, that's exactly what we're doing.
The page is accessed under: https://<project_name>.readthedocs.io/en/latest/.

I'm assuming we have the certificate included in the chain. I'll open up a bug on our provisioning to try to fix this.

I'm assuming we have the certificate included in the chain. I'll open up a bug on our provisioning to try to fix this.

Thanks 👍
SSL Labs also reports this as a misconfiguration, but the warning is quite subtle:

Additional Certificates (if supplied)
Certificates provided | 5 (6772 bytes)
Chain issues | Incorrect order, Extra certs, Contains anchor

https://www.ssllabs.com/ssltest/analyze.html?d=government-paas-team-manual.readthedocs.io

The configuration also causes issue with stricter security policies, see https://bugzilla.redhat.com/show_bug.cgi?id=1543861 With Fedora's FUTURE security policy, NSS (Firefox's TLS library) requests only certificates with SHA 256 and SHA 384 PRF in signature algorithms. Since the trust anchor of the alternative trust chain uses a RSA+SHA1 signature, the server aborts the TLS handshake with a fatal error.
In other words, you configuration will break all Firefox users and possible also users of Chrome as soon as upstream drops RSA+SHA1 signature support.
The solution is really simple: You have to make your configuration standard conform and not send any trust anchors, also known as root CA certs. You just have to remove the last certificate from your chain file and restart your TLS server. It doesn't make sense to send trust anchors anyway.
 4 s:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
   i:/C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
-----BEGIN CERTIFICATE-----
MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
-----END CERTIFICATE-----

It's cert number 5 on https://www.ssllabs.com/ssltest/analyze.html?d=cryptography.readthedocs.io

I'm closing here as this issue is duplicated in our server provisioning issue tracker.


Outbound% and Inbound% do not add up to 100 in main screen

Every channel will end up with 99% total when summing outbound % and inbound %. No big deal, but is it possible you are using floor() for both instead of round()?

Thanks for your report, something similar to what you are describing is happening.  In this case, when the database divides two integers it forces the result to also be an integer.  This essentially results in a floor() result and loss of precision.
To address the issue, the precision in the database calculation was increased and the result is then later rounded and truncated to keep the value clean on the dashboard.
Related Commit: https://github.com/cryptosharks131/lndg/commit/aba53c3b4d6f69ad27ed82f27a75ef5d514fac70


FAT-7778_FAT-7779 - SRS records creation failure

Purpose
Fix issue relating to creation of SRS records
Approach
The main problem comes from changes introduced in https://issues.folio.org/browse/MODSOURCE-530. To avoid of duplicate verification subfields from "999" were deleted, matchedId set as Id. This allows to avoid duplicate creation.
TODOS and Open Questions

[ ] Use GitHub checklists. When solved, check the box and explain the answer.

Learning
Describe the research stage. Add links to blog posts, patterns, libraries or addons used to solve this problem.

Verified on https://folio-dev-firebird-okapi.ci.folio.org


create slice with capacity, when capacity is known

This reduces the number of allocations made to the underlying array, while append() attempts to 'grow' the slice beyond its initial capacity

Hi @AdityaHarindar. Thanks for your PR.
I'm waiting for a istio member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.
Once the patch is verified, the new status will be reflected by the ok-to-test label.
I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.


Prefer docker container run over docker run

Problem description
To keep things consistent, prefer the format docker <object> <verb> where possible in examples. The old way still works.
cc/ @joaofnfernandes

This will probably be a lot of work. Maybe we should address this in three stages:

Fix get started tutorials, and top X doc pages with most page views
There are some reference pages like the one for docker run that have content maintained by hand. Start migrating that content to the new version.
Fix the rest of the docs

I've got a local branch where I've been taking a different approach, doing semi-automated search-and-replace within the engine/ subdirectory. I am concentrating on docker container and docker image as those are the two where the short form has been the most common. When I start the PR, it might make the most sense for each of us to push into the PR for our areas of responsibility. This may not get done for 13.1.

Yup, compose 3.1 is higher priority than this for the 1.13.1 release. This is maintenance work and if it doesn't fit on the 1.13.1 release timeline, that's ok.


Write tests for the datalake s3 bucket

Tests are required to validate the state of the data-lake environment and src code
Discussion required:
@imincik @billgeo it would be good to discuss test strategy.
I note that the latest CDK testing docs state:
currently, TypeScript is the only supported language for testing AWS CDK infrastructure, though
we intend to eventually make this capability available in all languages supported by the AWS CDK.

I am therefore expecting we

Use the PyTest framework for unit level tests that are executed locally and via CD
Have tests that run in CD after deployment to ensure the bucket is accessible and permissions are as expected

Reopening in anticipation of A CDK assertions library for Python.


Add topic metadata for mqtt input binding and support user defined topic for mqtt output binding

Description
For mqtt input binding, add a topic (from which the data comes from) field to the response metadata.
And for mqtt output binding, add a optional topic to create operation's metadata, which if presents, means that data will be published to the given topic, or by default publish to the component's configured topic.
Issue reference
Checklist
Please make sure you've completed the relevant tasks for this PR, out of the following list:

[x] Code compiles correctly
[x] Created/updated tests
[ ] Extended the documentation / Created issue in the https://github.com/dapr/docs/ repo: dapr/docs#[issue number]

Just rebased to latest dapr/master and resolves some conflicts in test.

@lotuc please open a PR in docs that updates the MQTT binding with these changes.


securityIdentifier property in groups

Is your feature request related to a problem? Please describe.
There is the property securityIdentifier in<EMAIL_ADDRESS>Description of the property is 'Security identifier of the group, used in Windows scenarios'. If I do not provide the property at all and query graph after the creation of the group the value is not null but some value. Is this property a read-only or it is possible to actually change if if you want. To me it sounds like it should be read-only.
Do not know if this is a bug thus logged it as feature by asking a question.

May be the same thing can be said for onPremisesProvisioningErrors property. It does not seems it is some property you can set up.

All onPremises* properties are read-only.  It says that in the docs for all the onPremises* properties except onPremisesProvisioningErrors - so that's a doc bug.
I'm not familiar with securityIdentifier and how that differs from onPremisesSecurityIdentifier.  My guess is this is also a doc bug, and should be read-only.

Currently we aren't documenting any of the read-only properties.  We're discussing internally whether we should do this, and if we do, what the doc format will look like.

In general read-only properties should be documented so you can output them if needed. For example in most cases ID is something that is needed in output. However the read-only ones should not appear when you configure resource as option to set them. Unfortunately this is not the only RP that has this problem but as it is in preview and more Graph resources can be added in time if you set a standard for the other teams now will make the API implementation of bicep easier to use.

Thanks @slavizh. Yeah - we actually arrived at the same conclusion.  Jason has a PR to include the read-only properties, but we're just checking in with our content team on whether the documentation makes read-only properties clear enough.  Will update shortly.

@slavizh we've not fixed securityIdentifier (will get to that), but the reference docs have been updated with read-only properties (in the Properties value section).
Please take a look and let us know if this satisfies your needs.

@dkershaw10 no worries. This is not so important but a nice case for adopting properly which properties are read-only or not.

@jason-dou Let's mark securityIdentifier as read-only

The change to mark the properties as read-only is merged. The Graph Bicep type description is expected to be updated in the upcoming Bicep version. Will also update the reference doc


Fix typo in documentation

Coverage remained the same at 38.401% when pulling 4f2f83c3d5c7c4190df8e6cfc76da7ddb1da6f59 on Nicals:patch-1 into bc97c9c6e153c8702ae9389a2ccb89b1fe6ccc2c on django-extensions:master.

Thanks !


/Users/mine/.nvm/versions/node/v12.13.1/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin/node-gyp: line 5: /usr/local/lib/node_modules/node-gyp/bin/node-gyp.js: No such file or directory

i installed node through nvm, but node-gyp is trying to use the standard node_module in the usr/local/lib repo.
/Users/mine/.nvm/versions/node/v12.13.1/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin/node-gyp: line 5: /usr/local/lib/node_modules/node-gyp/bin/node-gyp.js: No such file or directory
node-gyp: 7.1.0
node: 12.13.1
mac OS: 10.15.6

run npm config list, you may have a node_gyp set in there. Unset it with npm config delete and node-gyp-bin/node-gyp should do a relative reference rather than absolute.


Default org name doesn't work when the login username is "ballerina"

Description:
Say you have a username as ballerina on your machine.
Now, do the following.
ballerina new project
ballerina add module -t service
ballerina build -a
Above sequence results in weird state because the org name is ballerina.

We have handled the org name validation in Swan Lake, therefore, this issue should be fixed now.

Verified the issue with ballerina as the organization name and the issue seems to be fixed now, hence closing the issue.


[MAJOR] Implement business management

closes #208

Kudos, SonarCloud Quality Gate passed!
  0 Bugs   0 Vulnerabilities   0 Security Hotspots   1 Code Smell
 No Coverage information  0.0% Duplication

@nasaku898 @kevin-ghannoum  Should we ignore this code smell?

Kudos, SonarCloud Quality Gate passed!
  0 Bugs   0 Vulnerabilities   0 Security Hotspots   1 Code Smell
 No Coverage information  0.0% Duplication

@nasaku898 @kevin-ghannoum  Should we ignore this code smell?

Yeah we should ignore this code smell. It's the cleanest way of handling this case and I don't think it's a cyclomatic issue.


Activity log shows empty when acquiring/breaking lease for regular blobs

Storage Explorer Version: 1.11.1
Build: 20191203.1
Branch: master
Platform/OS: Windows 10/ Linux Ubuntu 18.04/macOS High Sierra
Architecture: ia32/x64
Regression From: Not a regression
Steps to reproduce:

Expand one storage account -> Blob Containers.
Create a blob container -> Upload one blob.
Acquire lease for the uploaded blob.
Check the activity log.

Expect Experience:
Activity log shows well.
Actual Experience:
Activity log shows empty.

More Info:

Activity log shows empty when breaking lease for regular blobs.
No activity log shows when acquiring/breaking lease for ADLS Gen2 blobs.

Hi @craxal On today's build 20191204.2

For regular blob, the activity log shows well now.

For ADLS Gen2 blobs, There still no activity log shows.

Show 'Acquiring lease for $leased blob' when trying to acquire lease for multi blobs which contains leased blobs.
Show 'Breaking lease for $unlocked blob' when trying to break lease for multi blobs which contains unlocked blobs.


Branch 1.4

What changes were proposed in this pull request?
(Please fill in changes proposed in this fix)
How was the this patch tested?
(Please explain how this patch was tested. E.g. unit tests, integration tests, manual tests)
(If this patch involves UI changes, please attach a screenshot; otherwise, remove this)

@liumingning could you please close this

Can one of the admins verify this patch?

@liumingning Please close this PR.


firebase support

In manifest 3 Firebase sdk has be put locally.
has anyone tied it?
I will try it today

I think, firebase should not be needed by everyone. If you need it, you can add it to the project yourself


enum name must be fixed here as well

This was fixed in one place, but needs to be fixed here as well, otherwise we end up with TokenStatus and Status enums which are the same really, and "Status" is causing rename of another structure in Python SDK to "Status1"

Automation for azure-sdk-for-python

Automation for azure-sdk-for-go

Can one of the admins verify this patch?


Update sample plugin to version 0.15.24

Gradle Core Team Checklist

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation
[ ] Recognize contributor in release notes

I went ahead and merged this, hope you don't mind.


Ionic background mode doesn't work well in my ionic application

I want my ionic app can continue send message to the server even though the phone screen turn off or enter the background mode. To achieve this, I apply ionic native background mode as:
  //background mode enable
  this.backgroundMode.enable();

  //When background mode is activated
  this.backgroundMode.on("activate").subscribe(()=>{
    console.log("activate background mode");

    //clear intervalId
    clearInterval(this.intervalId);

    //set interval for sending message every 10 seconds
    this.intervalId = setInterval(() => {this.sendMessage()}, 10000);
  });

  clearInterval(this.intervalId);
  this.intervalId = setInterval(() => {this.sendMessage()}, 10000);

When I run the program in my Android phone, it just works properly for exact 5 minutes in background mode, then stop sending the messages.
Can you explain why background mode doesn't works well? How can I solve this problem?

Hi, from my understanding, this is android stopping all network after 5 minutes.
and disableWebViewOptimizations to get around it.

Hi, I have the same problem. In my case I get the user's location and send it to my server through the socket. The connection is lost exactly 5 minutes. I have an Android 8.
Probaré la solución de @phiamo

It only works when device is plugged in. Seems it relates to power management. If we can make app recognises the device is always plugged in, it may work...

@n1705771 did you solve your situation? I'm in the same boat, 5mins exactly.

Did you install the latest version of the plugin from the github repo?
$ cordova plugin add https://github.com/katzer/cordova-plugin-background-mode.git
The version on npm seems quite old and for me it made a big difference to use the latest version, can use my app longer than 5min in background.

@josemanuelsouto , I have not solved this problem... Did you?

@n1705771 did you try to disable battery optimization? This seems to make quite a difference.
https://github.com/katzer/cordova-plugin-background-mode/issues/430#issuecomment-480153760

Enable
<manifest ...>
...

...
<application ...>
...

Can you please tell me which Ionic version are you using?
I think I am facing issue with versions.. I am using Ionic 3.
I have testing this plugin in Ionic 5 and it is working smooth.
Does ionic 3 supports this plugin? If Yes then please let me know.

@tobika, Thanks. I use Huawei mate 9. It seems the phone has energy saving mechanism. After I change the app launch to manual in battery setting, it works ok.
@shrekL, yes ionic 3 supports background mode plugin

@n1705771 , it only works for me when phone is plugged in but if I remove it from charging, its stops in 2-3 hrs. my device is samsung xcover Android 10+.  Do you know any settings which can help here?


[d3d9] Dungeons Fighter Online (Steam ID 495910) has button text partially missing

After starting the actual game from launcher some buttons have text partially missing. E. g, buttons at the bottom right to "Start game": " erver" instead of "Server" and "  it  ame" instead of "Exit game". There is similarly missing text elsewhere. After doing something (like connecting to another server) the pattern of missing letters changes.
The game's launcher currently does not start in released Wine or Proton (needs some WIP patches) but the issue is reproducible on Windows with dxvk's d3d9.dll dropped in.
Incidentally the same issue happens with both dxvk and wined3d under Wine.
I have partially debugged the issue and suppose that has something to do with the game expecting persistent texture locking memory addresses. The attached hack to wined3d (for illustration) fixes the issue.
The apitrace seems to break as well with the game probably around the same issue. The apitrace recorded on Windows replays without any text on the buttons at all on the same Windows machine (all that with native Windows d3d9) and similarly on Linux.
test.txt

Do you perhaps also know what kind of resource causes the problem? Specifically the D3DUSAGE flags and the D3DPOOL used to create it and the D3DLOCK flags passed when locking it?

Fixed by the PR.


A user can select an answer for each question

just add radio buttons.
I'd suggest to start with 'custom radio buttons'.
https://markheath.net/post/customize-radio-button-css

fixed yesterday


handlerDisabledOnNodeDelete does not evaluate if forgo.deleted is undefined

As mentioned in the title, handlerDisabledOnNodeDelete incorrectly does not evaluate when node.__forgo.deleted is undefined due to strict false checking.
As undefined === false returns false, handlerDisabledOnNodeDelete will not evaluate.
https://github.com/forgojs/forgo/blob/fbe7d28ad7b6d28d862e6f16e62cbf8df05649b9/src/index.ts#L445-L451
Unfortunately I'm unable to replicate this behaviour in CodeSandbox, but node.__forgo.deleted is typed as boolean | undefined.
https://github.com/forgojs/forgo/blob/fbe7d28ad7b6d28d862e6f16e62cbf8df05649b9/src/index.ts#L124-L130

4.1.6 published with your PR.


API Error Error: Couldn't find valid bootstrap(s): [/var/task/bootstrap /opt/bootstrap]

Version information

getting internal error while doing authentication with the above error. Please guide on this..

facing this issue after runtime update from go.1x to al2023, any help will be appreciated


Add tooltips to explain what bias score and model accuracy score are also delete pnpm lock file for netlify deploy and remove uneeded tests

Npm install still failing though


Power management low-level driver

We would like to write a lower-level driver for the power management system. This will just be a thin layer which abstracts away the details of GPIO read/write calls and exposes an interface for higher layers operating at the level of measurements and signals. This lower-level driver will need to provide a somewhat abstracted interface for all microcontroller pins assigned to power management functionalities. This abstracted interface will be used by a higher-level power management driver (which will be written after this low-level driver is written) for telemetry, monitoring, and control of the power management electronics. Some examples of what the interface of this lower-level will need to provide:

A method to measure the voltage of the battery
Methods to check what power source is currently being used
Methods to check whether any hardware faults are active on various aspects of the power management electronics
A method to enable or disable charging of the battery
Methods to enable or disable use of the battery or the wall outlet power source

The implementation of this driver should mostly just be making calls using classes from firmware/ventilator-controller-stm32/Core/Inc/Pufferfish/HAL/STM32/DigitalInput.h and firmware/ventilator-controller-stm32/Core/Inc/Pufferfish/HAL/STM32/DigitalOutput.h, and, once #21 is completed, firmware/ventilator-controller-stm32/Core/Inc/Pufferfish/HAL/STM32/AnalogInput.h. I would suggest implementing this lower-level driver as one or more classes, each corresponding to some aspect of the power management electronics.
This lower-level driver can be prototyped before @RLaxmanrao and @deepakkrishnamurthy have finished putting together a set of design specifications for the firmware's complete power management functionality from the regulatory requirements for the power management subsystems. We can have someone start prototyping immediately based on the above list of examples and some additional documentation - @deepakkrishnamurthy, could you please post links to the various pieces of documentation on this thread?
The first step will be for someone to review our meeting notes and the documentation which @deepakkrishnamurthy will post; then ask questions for clarification about the task described here and about the documentation; and then make a pull request with a proposed interface and implementation for this lower-level driver.

We are no longer using the LTC 4015.

Oops, we are still using the LTC4015 - LTC4421 is the one we're no longer using.


How do i implement it on the admin side of django as well?

The chained dropdown works well on the client side but when I'm creating a new data from the admin side it loads up all the cities from all of the countries in the dataset.

The chained dropdown works well on the client side but when I'm creating a new data from the admin side it loads up all the cities from all of the cities

yes, you are correct. In that case, you need to use AJAX to dynamically update the city and venue dropdowns based on the selected country and city, respectively.
something like this ... give it a try and let me know ...
admin.py
class PersonAdmin(admin.ModelAdmin):
    form = PersonForm

    # Add the following Media class to include jQuery and the AJAX script
    class Media:
        js = ('https://code.jquery.com/jquery-3.6.0.min.js', 'js/admin_chained_dropdown.js')

views.py
from django.http import JsonResponse
from .models import City, Vanue

def get_cities(request):
    country_id = request.GET.get('country_id')
    if country_id:
        cities = City.objects.filter(country_id=country_id).order_by('name')
        data = [{'id': city.id, 'name': city.name} for city in cities]
    else:
        data = []
    return JsonResponse(data, safe=False)

def get_venues(request):
    city_id = request.GET.get('city_id')
    if city_id:
        venues = Vanue.objects.filter(city_id=city_id).order_by('name')
        data = [{'id': venue.id, 'name': venue.name} for venue in venues]
    else:
        data = []
    return JsonResponse(data, safe=False)

.js
(function($){
  $(document).ready(function(){
    // Function to handle the change event of the country dropdown
    function handleCountryChange() {
      var selectedCountryId = $('#id_country').val();
      var citySelect = $('#id_city');
      var venueSelect = $('#id_vanue');

      // Disable city and venue selects while data is being fetched
      citySelect.prop('disabled', true);
      venueSelect.prop('disabled', true);

      // Fetch the cities for the selected country using AJAX
      $.ajax({
        url: '/api/cities/',  // Replace with the URL for your API view to fetch cities
        data: { 'country_id': selectedCountryId },
        success: function(data) {
          citySelect.html(data);
          citySelect.prop('disabled', false);
          handleCityChange(); // Trigger city change to update venue dropdown
        },
        error: function() {
          citySelect.html('');
          citySelect.prop('disabled', true);
          venueSelect.html('');
          venueSelect.prop('disabled', true);
        }
      });
    }

    // Function to handle the change event of the city dropdown
    function handleCityChange() {
      var selectedCityId = $('#id_city').val();
      var venueSelect = $('#id_vanue');

      // Disable venue select while data is being fetched
      venueSelect.prop('disabled', true);

      // Fetch the venues for the selected city using AJAX
      $.ajax({
        url: '/api/vanues/',  // Replace with the URL for your API view to fetch venues
        data: { 'city_id': selectedCityId },
        success: function(data) {
          venueSelect.html(data);
          venueSelect.prop('disabled', false);
        },
        error: function() {
          venueSelect.html('');
          venueSelect.prop('disabled', true);
        }
      });
    }

    // Bind the change events of the country and city dropdowns
    $('#id_country').on('change', handleCountryChange);
    $('#id_city').on('change', handleCityChange);

    // Trigger the initial loading of cities and venues based on the current form values
    handleCountryChange();
  });
})(django.jQuery);


need bounds parameter before ConstructMesh

That's the only way we don't need to hide the mesh before loading complete. Anyway to get access to accessor.min/max ?

The accessor min and max will be in the GLTFRoot if you parse it yourself and then pass it into GLTFSceneImporter.

@ericob I think this use case warrants a bit more discussion. My use case is similar. I am loading meshes that have custom vertex attributes as outlined in the glTF spec here.
When using the LoadScene API, its not easy to access the GLTFRoot. The only way to access it is to essentially re-implement the LoadScene method which isn't really that small a chunk of code.
A simple solution would be to make a read-only attribute, so it can be viewed on the importer after onLoadComplete is called.


Make disk block cache and sync block cache of configurable sizes

Add a few CLI options for kbfsfuse to control the size of these caches. Also add a bit of documentation and fix a bit of error handling.

Would amending my previous commit and force pushing confuse the CI?

Would amending my previous commit and force pushing confuse the CI?

No, that's fine.

Also, go fmt doesn't touch init.go

Hmm, I get this:
$ gofmt -w init.go
$ git diff
diff --git a/libkbfs/init.go b/libkbfs/init.go
index 091f069..97e37b8 100644
--- a/libkbfs/init.go
+++ b/libkbfs/init.go
@@ -202,7 +202,7 @@ func DefaultInitParams(ctx Context) InitParams {
                DiskCacheMode:                  DiskCacheModeLocal,
                DiskBlockCacheFraction:         0.10,
                SyncBlockCacheFraction:         0.10,
-               Mode:                           InitDefaultString,
+               Mode: InitDefaultString,
        }
 }

Do we have different versions of go or something?
[~/go/src/github.com/keybase/kbfs]$ gofmt -w libkbfs/init.go
[~/go/src/github.com/keybase/kbfs]$ git status
On branch jakob/KBFS-2525-diskblockcache-limit
Your branch is up to date with 'origin/jakob/KBFS-2525-diskblockcache-limit'.

nothing to commit, working tree clean```

$ go version
go version go1.10.4 linux/amd64

Same as what CI is running, I think.


chore: Update personal-gateway.md links for GH navigation

These are updated in the redirect, but physically changing them makes them work on GH.

@nschonni : Thanks for your contribution! The author, @maggiesMSFT, has been notified to review your proposed change.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

powerbi-docs/desktop-r-in-query-editor.md
:white_check_mark:Succeeded

powerbi-docs/refresh-data.md
:white_check_mark:Succeeded

powerbi-docs/refresh-scheduled-refresh.md
:white_check_mark:Succeeded

powerbi-docs/service-admin-troubleshoot-unsupported-data-source-for-refresh.md
:white_check_mark:Succeeded

powerbi-docs/service-admin-troubleshooting-power-bi-personal-gateway.md
:white_check_mark:Succeeded

powerbi-docs/service-frequently-asked-questions.md
:white_check_mark:Succeeded

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.

Thanks, @nschonni! #sign-off


Update the guide for the Pjax ID requirement

We're getting many issues about PJAX. I see a red line which is proven by the guide.
http://www.yiiframework.com/doc-2.0/yii-widgets-pjax.html
There is no Pjax example with an ID.
We should either update the guide with an example with an ID or generate an unique ID by default. This latter is a challenge but can be solved if you generate the ID by the {class}:{line} in which the pjax widget is called.

Agrred

This latter is a challenge but can be solved if you generate the ID by the {class}:{line} in which the pjax widget is called.

I don't like this kind of magic. Let's just say that ID is vital for PJAX blocks with navigation

is this kind of magic really a problem? Currently it seems that we have a BC break and its confusing for developers. This is a problem we all ran into (or at least >95% of the community).
Having this fixed out of the box is desireable. We don't want people to burn their precious hours in the 'logic' behind Pjax.

@dynasource We have a sequential auto-generated id in the Widget class and it the very first thing that forces new developers spend hours of understanding why something does not work with PJAX. Use case described:
views:

index.php
counter.php

controller actions:

index (renders index.php)
update-counter (renders counter.php)

View index.php:
echo GridView::widget([...]); // widget gets w0 id
$this->render('counter');

View counter.php:
Pjax::begin(); // widgets gets w1 id
// counters, whatever
echo Html::a('update', ['site/update-counter']);
Pjax::end();

After the Update button pushing, the update-counter action will render counter.php and the PJAX widget will get id w0. Thus response from update-counter will be invalid because it will not contain element with w1 ID.
How do you suggest to implement auto-generated widget ID that will work for this use case?

ehmmm...with my PR? https://github.com/yiisoft/yii2/issues/12977

Sorry, your PR was not ready when I opened 50 issues in my browser, so I did not see it when posted my comment.


[Feature Request] Graveyard based on conditions

There is a mod called "the graveyard" for fabric 1.18.x and basically it adds pretty awesome graveyard structures and mobs throughout overworld.
Since this mod has the graveyard feature, I was hoping you could add some compatibility or maybe some options to allow modpack developers to have YIGD look for given structure names, in this case 'the_graveyard:medium_graveyard' or large, or small, etc. etc. and if enabled, YIGD will look for the nearest targeted structure and place the grave in said structure (medium graveyard in this example).
The player will then be notified that there grave is in nearest [STRUCTURE NAME]

This idea actually sounds really dope. I will have to see if there's a way I can implement this. I definetely want to. Could be a bit complicated however. I don't really know how I would go by finding a coordinate to place the grave at, or make the graves translate in a good way, but if I can, I will definetly make it happen.

Maybe TelepathicGrunt can help ya out if they have time/you have time. wizard at terrain stuff. I imagine there might be a way to search for the structure and possibly make a rule where it replaces the Graveyard mod grave block that it has in said graves :D

Just as an update, I've now managed to get this mostly working. When you die the mod will search within a radius and replace one of the graveyard mod's graves by your own grave. If there are no graveyard graves where they are supposed to be in the graveyard, graves will generate as they normally would. I've not yet managed to make it work for the large graveyards however, since those generate differently from the other ones.
You did suggest that the graveyard mod's grave models could be used, however I imagine this would be very hard to accomplish, as I've put quite some time in the grave renderer, trying to make that as customizable as possible. The best way would be to use a resource pack in that case, but then all grave models would change.
I'll make another comment here when I'm done

Ok even though it felt like it that last part didn't take that long to do. The feature is complete and ready for the next update. It's a really cool suggestion, but I feel like I did it in a very insufficient way. Currently I'm cross referencing the structure files to where graves are located in them, but the only other way I can think of is to look through every single block in a graveyard for a grave and that just feels really resource heavy.
Anyway I'll update with another comment and close the issue whenever I release the update

OH NO I love your model haha. please don't change it! I meant you could replace the actual "grave" from The_graveyard mod with your own grave as a way to help find the graveyard structure.

Ok even though it felt like it that last part didn't take that long to do. The feature is complete and ready for the next update. It's a really cool suggestion, but I feel like I did it in a very insufficient way. Currently I'm cross referencing the structure files to where graves are located in them, but the only other way I can think of is to look through every single block in a graveyard for a grave and that just feels really resource heavy.
Anyway I'll update with another comment and close the issue whenever I release the update

Awesome cannot wait, thank  you!

Added in newest 1.18.2 release


chore(ONYX-322): retire AREnableMyCollectionCollectedArtists fiture flag

This PR resolves ONYX-322, ONYX-318
Description
Retire AREnableMyCollectionCollectedArtists fiture flag

PR Checklist

[x] I have tested my changes on iOS and Android.
[x] I hid my changes behind a feature flag, or they don't need one.
[x] I have included screenshots or videos, or I have not changed the UI.
[x] I have added tests, or my changes don't require any.
[x] I added an app state migration, or my changes do not require one.
[x] I have documented any follow-up work that this PR will require, or it does not require any.
[x] I have added a changelog entry below, or my changes do not require one.

To the reviewers 👀

[ ] I would like at least one of the reviewers to run this PR on the simulator or device.

Changelog updates
Changelog updates

Cross-platform user-facing changes

iOS user-facing changes

Android user-facing changes

Dev changes

retire AREnableMyCollectionCollectedArtists fiture flag -daria

Need help with something? Have a look at our docs, or get in touch with us.

This PR contains the following changes:

Dev changes (retire AREnableMyCollectionCollectedArtists fiture flag -daria)

  Generated by :no_entry_sign: dangerJS against d2f425306db90ddb5be5badaf65b57d0e3593bc2

🙏🏽


Support to use ak/sk to invoke chat/OpenAI API through ai-gateway

for now we only support K8s bearer token to invoke K8s API, we can also use kubectl using kubeconfig file
but we also need to invoke chat(application) API and OpenAI API, we can use the same ak/sk for OpenAI API through ai-gateway, as chat API will normally invoke OpenAI under the hood.

IMO, we can add this ak/sk check for our model service api

API gateway support to generate ak/sk to protect the upstreaming AI API, here is the basic steps:
## 1.1 Create consumer

Applications can correspond a Consumer to a user in the actual application.
```bash
kubectl create -f - <<EOF
apiVersion: gw.t7d.io/v1
kind: Consumer
metadata:
  annotations:
    tamp/clusterId: host-cluster
    tamp/displayName: example
  name: consumer-example
  namespace: test
spec:
  conName: example
  description: "consumer example"

EOF

1.2 Create AK/SK
kubectl create -f - <<EOF
apiVersion: v1
data:
  kongCredType: YmFzaWMtYXV0aA==  #base64 encoded,the value is fixed,decode is basic-auth
  password: M0B4R28zQW5O    #base64 encoded
  username: emhpcHVhaQ==    #base64 encoded
kind: Secret
metadata:
  labels:
    tamp/consumernanme: consumer-example #the cr name of consumer
    tamp/credentialtype: basic-auth
  name: consumer-example-key
  namespace: test
type: Opaque
EOF

1.3 Grant api
kubectl create -f - <<EOF
apiVersion: gw.t7d.io/v1
kind: Authorize
metadata:
  annotations:
    kubernetes.io/ingress.class: kong
    tamp/clusterId: host-cluster
    tamp/consumerdisnanme: example
    tamp/groupdisname: openai service
    tamp/publishapidisname: openai api
  labels:
    tamp/apins: test
    tamp/bindingStatus: binding
    tamp/consumernanme: consumer-example
    tamp/consumerns: test
    tamp/env: kong
    tamp/groupname: apigroups-openai
    tamp/publishapiname: snapshotapi-openai-api
    tamp/snapshot: snapshotapi-openai-api
  name: auth-example
  namespace: test
spec:
  apiName: snapshotapi-ejayynv9
  bindingStatus: binding
  bindingType: allow
  conName: consumer-fccdce2l
  env: kong
EOF


NodeJS Role example: missing role subdirectory

Page 98 of the book (version 0.95) mentions that the structure for the nodejs-role example should be:

app/

app.js
package.json

playbook.yml
roles/

nodejs/

meta/

main.yml

tasks/

main.yml

From what I can see however, the directory ansible-for-devops/nodejs-role/ is completely missing the roles subdirectory.
Am I missing something obvious here or does the repository simply not contain the subdirectory due to an omission?

Sorry it's taken so long—I'm taking a look at this now...

Right you are! I have no idea how I missed that when I was working on chapter 6. Thanks for reporting this—and would you mind if I added a note in the 'changelog' thanking you by name (e.g. "Thanks to @geoand!")?

Glad to help!
Congrats again for the great book!
I of course have no problem you mentioning my name in the changelog! By all
means!


When starting server/agent/networkingcontainer, a lot of things are downloaded dynamically

This has a number of disadvantages:

slow
harder to cache (e.g. in docker registry mirror)
more error prone

To me, ideally, it would be all packaged in docker containers at build time (so no on-the-fly github downloading). Optionally, some extra docker containers may be downloaded additionaly, but if a list of these dependencies is published than they can be pulled beforehand.
What's you take on this? Is this a long term strategy, or just because it allows faster patching of deps?

The current approach was done because it was easier to package and maintain, but obviously (I see now) at the cost of the user.  We've already had issues filled that one can't run Rancher with no internet connection.
I think we will change our approach and try to have everything packaged in a documented set of images.  We have not spent anytime optimizing the size of our images either, so they are known to be quite large.
The downloads from github are cached into the rancher-agent-state volumes.

@ibuildthecloud perfect. Large images is not a problem to me at all, provided they are... well, images. Large dynamic dependencies look nice on the surface, but are actually less user friendly indeed.
Ah, that clarifies what this rancher-agent-state guy is doing :-D and the name suddenly makes sense

Now that I think of it, I may decide to remove the rancher-agent but not the rancher-agent-state, and this would cache stuff -- right? That's actually a workaround for now. It does make it slightly less transparent what software version you're running, though.

Yes, you shouldn't delete the rancher-agent-state.  The version of the agent and all software dynamically downloaded is managed by the server.  If the server requires a new agent it will deploy a new one based off of a different image.  We enforce a strong consistency between server and the required agent version.
This is part of the magic and why it downloads stuff on startup because the agent is a generic image.  The server decides what software needs to be installed.  For example we have different agents, host agent, network agent, load balancer agent, and swarm agent.  Each requires slightly different software but is all based off of generic docker images.
As development stabilizes a bit more we will look at caching this software in the image.  Right now there are so many moving parts evolving so rapidly that it helped to do all this dynamic magic

Yes, you shouldn't delete the rancher-agent-state. (...)

This is great :-) I recommend putting this in the Github Readme.md as it is actually a very good property, but not totally clear.

As development stabilizes a bit more we will look at caching this software in the image. Right now there are so many moving parts evolving so rapidly that it helped to do all this dynamic magic

I can totally imagine.

Can we call this good now that you can do offline-install and provide your own private registry copies of the images?  http://docs.rancher.com/rancher/installing-rancher/installing-server/no-internet-access/


Grammatical Error fixed in README.md of the repo.

Hi,
I have fixed a grammatical mistake in README file of the repo. Please review and approve.
Regards,
Ronit Dutta.

 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.ANUPAM DUTTA seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

That's not a grammatical error.


Spi-hdlc-adapter: Copy the spi path name before passing to syslog()

This commit makes a change in spi-hdlc-adapter to copy the passed
in spi path (from the argv) in a max 64 char array before passing it
to syslog(). This ensures syslog() string argument has a limited
size.

Current coverage is 71.53% (diff: 100%)

Merging #1135 into master will decrease coverage by 1.15%

@@             master      #1135   diff @@
==========================================
  Files           125        127      +2
  Lines         17038      18204   +1166
  Methods        2409       2554    +145
  Messages          0          0
  Branches       2056       2205    +149
==========================================
+ Hits          12384      13022    +638
- Misses         3889       4358    +469
- Partials        765        824     +59

Powered by Codecov. Last update 490eabb...35519fc


07/20/2018 03:04 : Create Pull Request for branch master -> prTesting1_2018072003

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

split/updateTestCon1.md
:white_check_mark:Succeeded

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.


Suggestion - Property Wrapper that works with SwiftUI

I'm playing with SwiftUI. I was hoping for a property wrapper that would allow me to use the magnificent SwiftyUserDefaults neatly with SwiftUI
Specifically, I'm looking at the case where I can click a button to toggle a setting, and expect the View to update appropriately.
I have had a shot at it. This works, although it doesn't observe changes to the defaults if they're made elsewhere.
I can't see a way to make observation work as the PropertyWrapper seems to need to be a struct rather than a class (so can't hold an observer which may mutate it)
#if swift(>=5.1)

//Inspired by https://stackoverflow.com/questions/59580065/is-it-correct-to-expect-internal-updates-of-a-swiftui-dynamicproperty-property-w

//Note - this doesn't work Property Wrapper is a class rather than a struct

@propertyWrapper
struct SwiftyUIDefault<T: DefaultsSerializable> : DynamicProperty where T.T == T {

    public let key: DefaultsKey<T>

    public var wrappedValue: T {
        get {
            return storage.wrappedValue
        }
        nonmutating set {
            apply(newValue)
        }
    }

    private let storage: State<T.T>

    public var projectedValue: Binding<T.T> {
        storage.projectedValue
    }

    private func apply(_ newValue: T) {
        Defaults[key: key] = newValue

        DispatchQueue.main.async {
            self.storage.wrappedValue = newValue
        }
    }

    public init(keyPath: KeyPath<DefaultsKeys, DefaultsKey<T>>) {
        self.key = Defaults.keyStore[keyPath: keyPath]

        self.storage = State<T.T>(initialValue: Defaults[key: key])

    }

}

#endif

You can test this with
import SwiftUI
import SwiftyUserDefaults

extension DefaultsKeys {
    var userLastLoginDate: DefaultsKey<Date> { .init("userLastLoginDate", defaultValue: Date.distantPast) }
}

struct Test: View {

    @SwiftyUIDefault(keyPath: \.userLastLoginDate)
    var userLastLoginDate: Date

    var body: some View {
        VStack {

            Text("Selected: \(userLastLoginDate)")
            .padding()

            Button(action: {
                self.userLastLoginDate = Date()
            }) {
                Text("Change Swifty")
            }

        }

    }
}

struct Test_Previews: PreviewProvider {
    static var previews: some View {
        Test()
            .previewLayout(.sizeThatFits)
            .previewDevice(.iPhone7)
    }
}

I don't really understand what the mechanisms are here. DynamicProperty is definitely a requirement, but the documentation doesn't give much info about how it 'tells' the View that there has been an update.

update: the wrapper above doesn't work in an ObserveableObject
in that scenario, the best I could see is
class Pref:ObservableObject {

    @SwiftyUserDefault(keyPath: \.userLastLoginDate, options: [.observed])
    var userLastLoginDate: Date {
        willSet {
            objectWillChange.send()
        }
    }
}

And in the multi-document scenario where there isn't a shared prefs object
extension DefaultsKeys {
    var magnifyRotation: DefaultsKey<Bool> { .init("magnifyRotation", defaultValue: false) }

}

class Prefs:ObservableObject {

    @SwiftyUserDefault(keyPath: \.magnifyRotation, options: [.observed])
    var magnifyRotation: Bool {
        willSet {
            objectWillChange.send()
        }
    }

    var observers:[DefaultsDisposable] = []

    init() {
        let disposable = Defaults.observe(\.magnifyRotation) { [weak self] (observer) in
            self?.objectWillChange.send()
        }
        observers.append(disposable)
    }

    deinit {
        observers.forEach { (disposable) in
            disposable.dispose()
        }
    }

}

there seems like a lot of boilerplate here

@ConfusedVorlon did you ever resolve this?

I never came up with a good solution that integrated nicely with SwiftyUserDefaults

I played around with this, I think it is possible to do this, following this article by Sundell: https://www.swiftbysundell.com/articles/accessing-a-swift-property-wrappers-enclosing-instance/
I dropped this file into the Pods project:
https://gist.github.com/lordzsolt/cf96c5bc4619b2a09d32bce5a5254c27
Then I did:
class SomeViewModel: ObservableObject {
    @PublishedUserDefault(keyPath: \.someValue)
    var someValue Double

    init() {
        DispatchQueue.main.asyncAfter(deadline: .now() + 5) {
            let value = UserDefaults.standard.value(forKey: "someValue") as! Double
            UserDefaults.standard.set(value + 1, forKey: "someValue")

            DispatchQueue.main.asyncAfter(deadline: .now() + 5) { [self] in
                someValue += 1
            }
        }
    }
}

And it seems like it will trigger a redraw of the SwiftUI View each time.
I might try to make a PR with it, but there is a bit too much magic that I don't fully understand.
I don't want to break other people's production, until I test it enough myself.

This stuff melts my brain - but I'm really glad you're giving it a go. This would be a great addition to the library.
I had a look at the code, and the thing that strikes me as odd is setting up the observation as a defer in the getter.
It seems like that would be more natural in the init.
Perhaps there is some magic going on...

Perhaps there is some magic going on...

Yes, that's what I would've liked to have as well, but I think you only get the enclosing type in the subscript method


Set width programmatically

it would be nice if you could set the width of the toastr notification without having to hack the css.

Toastr returns the element that was created as a jQuery element. You can modify that as you please.
toastr.success("awesome", "totally").css("width","500px")

How to set the size of toastr? I've tried your example but returns .css() is not defined... thanks new in toastr.

Your suggestion of using .css worked great for me, @TimFerrell.
Thanks!

just to help other
toastr.error("title","body").attr('style', 'width: 600px !important');

Thanks @TimFerrell its working... 👍

Apparently, I have to set max-width as well, so the css becomes,
toastr.success("awesome", "totally").css(({
    width: "500px",
    "max-width": "500px"
})

Should be part of the Options.

Thanks @TimFerrell and @patarapolw, I made a bit modif which worked like charm for me:
toastr.success("awesome", "totally").css({ "width":"auto", "max-width":"100em" })
Hope this help someone.

While a useful workaround, this isn't what most users want, in my opinion. They want to be able to configure the width in options so that it applies to all toastrs.

Toastr returns the element that was created as a jQuery element. You can modify that as you please.
toastr.success("awesome", "totally").css("width","500px")

working perfectly first time. thank you for your comment.

``


hahaha, put this somewhere on the site for people to use

this link works too: https://openclipart.org/detail/239977/Duang-Chinese-Character

closed with latest commit.

its in the footer


Connecting to the container via localhost or hostname results in  'IO Error: Got minus one from a read call'

Report from vas_stergioulis:
When trying with sqlcl, outside of the container, to connect with the host's external ip (internet ip) it connects correctly but when I try instead with 'localhost' or hostname (meaning that it tries with <IP_ADDRESS>), first it asks for the password and after exactly 60 seconds fails with 'IO Error: Got minus one from a read call (CONNECTION_ID=4QZ+EVjLRSeHLmjNPjDj4Q==)'.  The same machine is running in a container a 18c-xe and connecting with localhost works as it should. Listener log.xml in both shows a '* establish * xepdb1 '   but in failed attempt it writes immediately ' service_update * XE * 0'.
Putting tcp.validnode_checking = no in sqlnet.ora changes the error, immediately shows ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
In general, it is an error that happens with <IP_ADDRESS> When I use a server name that resolves in external ip6 or ip4 address connects as it should.

Trying with ./sqlcl/bin/sql sys@localhost:1521/xepdb1?oracle.net.disableOob=true as sysdba works as is suggested by you @gvenzl and in oracle/docker-images/issues/1663. This workaround is not tested against other scenarios like connections from ords but...

Great, happy to hear (sort of) that it's the same issue! Will make sure that the OOB issue gets documented appropriately!

This is related to #38.

@vassterg, this issue gets reported by more and more users taking up 21c, which makes me think that I will probably enable this parameter by default in these images so that users don't have to go through a lot of pain and troubleshooting just to connect to the database.

That would be great!
Στις Παρ, 12 Νοε 2021, 4:42 μ.μ. ο χρήστης Gerald Venzl <
@.***> έγραψε:

@vassterg https://github.com/vassterg, this issue gets reported by more
and more users taking up 21c, which makes me think that I will probably
enable this parameter by default in these images so that users don't have
to go through a lot of pain and troubleshooting just to connect to the
database.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/gvenzl/oci-oracle-xe/issues/43#issuecomment-967169058,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABMI2KOE5I43GDSMNDJF4K3ULURVZANCNFSM5HICKEOQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

My main use is with APEX and ORDS. For ORDS config this means that it needs
to use customURL as connect string and this is a change in all
configuration scripts and of course a change in Ansible recipes. So
something reverting the new behavior is welcomed. Thank you.
Στις Παρ, 12 Νοε 2021, 4:45 μ.μ. ο χρήστης Βασίλης Στεργιούλης <
@.***> έγραψε:

That would be great!
Στις Παρ, 12 Νοε 2021, 4:42 μ.μ. ο χρήστης Gerald Venzl <
@.***> έγραψε:

@vassterg https://github.com/vassterg, this issue gets reported by
more and more users taking up 21c, which makes me think that I will
probably enable this parameter by default in these images so that users
don't have to go through a lot of pain and troubleshooting just to connect
to the database.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/gvenzl/oci-oracle-xe/issues/43#issuecomment-967169058,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABMI2KOE5I43GDSMNDJF4K3ULURVZANCNFSM5HICKEOQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

According to https://oracle-l.freelists.narkive.com/6bkLfg9i/anyone-have-disable-oob-on-set-in-sqlnet-ora, setting DISABLE_OOB can have a negative impact on performance (although it's not discussed/shared how much that impact would be). There is an accompanying parameter BREAK_POLL_SKIP that might need to have a higher value set than the default of 4, which is the number of network packets sent before the stack polls for these network break messages.
Oracle's BI server documentation refers to setting this to 10k packages:

Configuring Oracle BI Server When Using a Firewall
The presence of a firewall between the Oracle BI Server and the Oracle Database can result in very long query times.
For example, if using a simplenqcmd query takes two to three minutes to return results, or if Answers does not respond after executing or validating a SQL statement initiated in Presentation Services.
To improve query time, go to the sqlnet.ora file in BI_DOMAIN\config\fmwconfig\bienv\core and add the BREAK_POLL_SKIP and DISABLE_OOB parameters as follows:
BREAK_POLL_SKIP=10000
DISABLE_OOB=ON
This configuration only needs to be performed on the Oracle BI Server. This configuration is not needed on the Oracle Database or on user client desktops.

Yeah indeed, a lot of people would have to change their configuration to deal with this. Better if the image itself deals with it once, rather than pushing the burden to 1000s of users! :)

This is fixed now, DISABLE_OOB is now turned on in all 21c+ images


Toggle ON special workspace switch the current workspace

All bug reports should have the following:

Steps to reproduce

Open terminal on workspace 1, firefox on workspace 2
Open another firefox on workspace 2, then move that window to special workspace
On the firefox page on workspace 2, open a random url in a new tab. Then drag it to make the tab running on separate firefox window (on ws2). Move that window to special workspace and then drag the tab to current firefox instance that running on special workspace that we created on step 2. This merges two firefox windows on special workspace into one.
Toggle off special workspace,  set active workspace to workspace 1, then toggle on special workspace

Expected outcome

Special workspace display on workspace 1

Noted outcome

Special workspace displayed, but active workspace is set to workspace 2

NOTE:

If I drag the tab on step 3 in the firefox window running on special workspace to a separate window and move it back to the original firefox window in workspace 2, Hyprland will work as expected

Can't reproduce. Are you sure you're on the latest?

I'm using the version on nixpkgs unstable branch, the repo was updated yesterday

you don't mean this version, right? because that would be a joke.

I've just tried that again but can't reproduce. So I think separate the tab and merge it to other window may not be the reason.

you don't mean this version, right? because that would be a joke.

Sorry. I added it using flake method and forgot where the package come from. Actually, I'm using this commit: https://github.com/hyprwm/Hyprland/commit/f77fac9df9c6619fe70f2b951a623095ed9d753a

welp then thats old? It should've been fixed in bb90ff04610023457633cf76454a39727395b3a9

Well that's 2 days old. You should update.

welp then thats old? It should've been fixed in bb90ff0

That's great, thanks. Let me update and see if the problem is gone. Thank you both for super fast response :)


Missing end event, ltx parser.

Disclaimer: I may have just missed something.
When using the ltx/lib/parsers/ltx parser and processing a stream, there doesn't appear to be an end event (or similar) that I can listen for to confirm that parsing has completed.  Any chance of one being added or is it for us to derive?
Cheers

the tree event is available on https://github.com/node-xmpp/ltx/blob/master/lib/Parser.js

Ah, does this get fired when streaming data through via something like fs.createReadStream('./test.xml')?  Memory usage is a concern for what I'm trying to do so I wanted to avoid having the entire XML data in memory, as I'm processing a large amount of them as quickly as possible.  Hence using the stream approach, which makes me think that if the tree event is fired, that data is being held onto until the full data has been parsed.

which makes me think that if the tree event is fired, that data is being held onto until the full data has been parsed.

Indeed; https://github.com/node-xmpp/ltx/blob/master/lib/Parser.js parses the all tree so data is held into memory.
I'm not against having an end event on ltx Parser; feel free to PR.


Fix #1990: Add time logging to API endpoints

CC @kchulj

Updated

I don't think this is worth merging. We found the issue, and the code can always be resurrected if a similar issue re-surface. An external service monitoring the node would be more accurate.


Portable package file type assignments

Description of the new feature / enhancement
There should be a spot in the manifest where for a portable package, file types can be assigned to a program. A file icon can optionally be assigned. This is useful for certain programs that open files, such as touchHLE and WineVDM
Proposed technical implementation details
Registry stuff

Would this be similar to NestedInstallerType? Possibly NestedInstallerIcon?
I think the manifest a Commands parameter that could be used for running files. It's not used very often.


[windows] etw: add support for well-known event providers

This change adds support for well-known event providers in the ETW component.  Allows for tracing ETW specifically for audit events.
Note that the audit provider can only be subscribed when running as LOCAL_SYSTEM; making testing difficult.
What does this PR do?
Motivation
This is an enabling PR for the continued development of CWS.
Additional Notes
Possible Drawbacks / Trade-offs

Describe how to test/QA your changes
As mentioned above, testing in isolation is problematic because it can only be done as LOCAL_SYSTEM.  Feature testing will be included in the consuming PR for CWS.

/merge


Fix Android editor crash issue

Fix issue causing the Android editor to crash when pressing back from a running project
Fixes https://github.com/godotengine/godot/issues/79291
3.x version

We don't benefit here from singleInstancePerTask?

We don't benefit here from singleInstancePerTask?

Not for the editor for a couple reasons:

singleInstancePerTask gives the ability to launch multiple instances of the same activity, a feature we're planning to leverage in Godot 4.3. But unlike exported games / apps, we don't have a use-case for launching multiple instances of the Editor on Android, so we prevent that by using singleTask
singleInstancePerTask causes the activity to always be at the root of the task. In the Editor case, this would re-introduce the issue we're solving here since, in a similar manner to singleInstance, the running project window would not be able to be in the same task as the Editor window. singleTask allows that behavior to happen

Thanks!