Transport improvements for 2024-W32

Carried from #212:

[ ] @khaeru: Investigate scale-1 values/pass-through of values for c=methanol.

Copied from iiasa/message_data#567:

@r-aneeque: update freight-activity.csv for n=R12_CHN

Housekeeping:

Nothing yet.

How to review

Read the diff and note that the CI checks all pass.
More TBA

PR checklist

[ ] Continuous integration checks all ✅
[ ] Add or expand tests; coverage checks both ✅
[ ] Add, expand, or update documentation.
[ ] Update doc/whatsnew.

@ravitby, this is the current branch for development of MESSAGEix-Transport in its new home in the message-ix-models package. Please use the "Details" link next to "docs/readthedocs.com:iiasa-energy-program-message-ix-models" to view the modified docs on per changes on this branch.

Three main tasks for this week and I guess this branch:

[ ] 1.	LDV base year stock re-construction using 2020 data and projecting back to 2000-2005 (CAP_NEW) to reflect:

[ ] 1.1 Construct Total Vehicle stock for 2020

Vehicle stock by technology and fuel used

Average age of the vehicles-in-use

[ ] 1.2 Update Occupancy rate & Vehicle kilometers travelled (VKT), use these to match the model stocks with OICA stocks

[ ]  1.3 New sales in 2020

Share of EVs, PHEV in New sales

For R12 regions with a focus on R12_NAM, R12_CHN, R12_WEU

Use US Data for R12_NAM, address the issue of light trucks (SUVS, pick-up trucks)

Address the R12_CHN vehicle stock (model) vs vehicle stock (data) gap

[ ] 2.	Update Freight demand baseline estimates

Start with R12_CHN low baseline numbers,

Temporary fix: maybe adjust base year Road_freight demand estimates upwards, until we have the ability to include Waterways, Rail freight modes

[ ] 3.	Update cost trajectory of EVs for different regions so that:

It reflects GEVO 2023 and other know cost ratios

EV uptake is higher than current settings, especially in the later half

Leaves enough space for policy to increase the uptake (both volume & speed)

Additionally,
	Look into non-ldv technologies, especially the technology costs and fuels being used
	Check AIR demand
	Prepare a model run that can be evaluated, and passed on to base model (Oliver) by the end of the week.


fix not being able to monitor http server failure when not getting th…

…e lock  of synchronizer

LGTM

LGTM


truncated responses

truncated responses, only partial responses, sometimes half of the sentence.
Also, when asking for code examples, it just print the first sentence and the code is missing
Desktop (please complete the following information):

OS: [e.g. iOS] Sonoma
Version [e.g. 22] 14.3.1
Browser [e.g. chrome, safari] Bedrock for Mac

what harry potter school magic is doing on the left?

as you can see, no responses at all. Also it's look like the previous question is not being taken in consideration.

Thank you for informing me about the issue! Only Llama and Titan models are aware of the previous conversation history, and it seems that the command model can also be easily modified to support this.

This is referring to the sidebar displaying the last message content, and now that we're using claude haiku instead of claude instant, I've updated the prompts so it should summarize better. Since this doesn't seem to be an actual issue, I'll go ahead and close it out.


suport kubebuilder go/v4

Feature Request
Describe the problem you need a feature to resolve.
$go version
go version go1.21.1 linux/amd64

$operator-sdk init --domain=example.com --owner=me --verbose
$kubebuilder edit --multiversion=true
...
[Deprecation Notice] This version is deprecated.The `go/v3` cannot scaffold projects using kustomize versions v4x+ and cannot fully support Kubernetes 1.25+.It is recommended to upgrade your project to the latest versions available (go/v4).Please, check the migration guide to learn how to upgrade your project
...
$ kubebuilder version
Version: main.version{KubeBuilderVersion:"3.12.0", KubernetesVendor:"unknown", GitCommit:"b48f95cd5384eadcdfd02a47a02910f72ddc7ea8", BuildDate:"2023-09-05T19:22:51Z", GoOs:"linux", GoArch:"amd64"}

$ operator-sdk version
operator-sdk version: "v1.31.0", commit: "e67da35ef4fff3e471a208904b2a142b27ae32b1", kubernetes version: "v1.26.0", go version: "go1.20.6", GOOS: "linux", GOARCH: "amd64"

Describe the solution you'd like.
be able to use newer tooling and code layout with no deprecation and error by default .
/language go

https://github.com/operator-framework/operator-sdk/pull/6514 should address this issue.
cc: @oceanc80


combination keys ctrl+s does not work

I installed all requirements, my environment is osx.
But the key combination ctrl+s does not work, while other normal keytap work normally
My code:
https://gist.github.com/weaming/da4cf0cf78f4c58b13de05b3e489d38f

ctrl+s or robotgo.KeyTap("s", "command") ?

robotgo.KeyTap("s", "command") works on Windows but failed on OSX

This is the system shortcut key.


Provisioning Package is not Installing

Hi, I've followed these directions step-by-step however my app isn't installed even after rebooting.
Here's a screenshot showing my .ppkg file in the correct location on my device (my file name is Seeker.ppkg):

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

ID: 51a5db35-a80e-6db9-9648-cfcaabbe19ca
Version Independent ID: 52a25746-f8eb-fcf3-cc5a-df5533e08451
Content: Install your app on an IoT Core device - Windows IoT
Content Source: windows-iotcore/develop-your-app/AppInstaller.md
Product: windows-iot
GitHub Login: @parameshbabu
Microsoft Alias: pabab

My mistake. It must have just taken some time for the app to be installed in the background. It's on there now.

Hi @scout208 , I have the same problem. But there is no app was installed after wait about 10 minutes.
I can install the APPX using Windows Device Portal successfully. But the provisioning package .ppkg can't be installed at all.
Any ideas?
Best regards.
The provisioning package name is "Project_1_<IP_ADDRESS>.ppkg", the background application name is "BackgroundApplication1-uwp_s467b7knvf8fe".

BTW, I uninstall the "ZWaveHeadlessAdapterApp" using the Windows Device Portal, but this app was not reinstall after reboot also. As you can see that the "ZWaveHeadlessAdapterApp.ppkg" is a default .ppkg at the "C$\Windows\Provisioning\Packages" folder.
What is the strategy of the provisioning package?

@moyanming Like I said, I never really had a problem I just needed to wait a minute for my package to be installed. I wasn't using any background app though, so maybe you could try it with a headed app instead? It might just be a different set of steps for headless apps.
I don't know anything about ZWaveHeadlessAdapterApp. I just left it as it is.


tools: fix bugs in pd-simulator

What problem does this PR solve?
Fix some crash bugs in pd-simulator
Check List
Tests

Manual test

 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.Chengjin 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.


Fix mimeType not being set for FileResource

Thanks, looks good to me! Will release a new version shortly...


Add NVIDIA Compiler Support

Hello,
This PR refers to #52.
Within this PR, NVIDIA compiler support has been added. Please note that there is no NVIDIA compiler available for Windows and Mac.
Thanks,
Ali

Thanks @gha3mi, looks good to me. Would be good to get the go-ahead from @awvwgk


Exposure generator: Integration with new nights

Let me know when is done for review

Just add the files in base_exposures directory


local returns are deprecated: use scala.util.boundary instead

I've recently become aware of org.objectweb.asm.Type.getType(java.lang.String) which does exactly what that manually implemented method does. I'll make a PR that will get rid of this method altogether.

This PR should suppercede this one https://github.com/joernio/joern/pull/3593

thank you!


Shows first frame of content before playing ad

Hi,
We are seeing an issue with the first frame of the video content being shown before the ad starts. We would like to see the ad start before any content is being shown.
The way it works now leads to a lot of flickering between states.
I have tried playing around with preload option, but it does change the behaviour.
Our quick fix has been to hide the video element like this, but we would like to see a more smooth solution :-)
.vjs-ad-loading > video {
  opacity: 0;
}

Video of the issue

Hi there,
I'm not sure that this is possible today unfortunately. The way the video.js plugin is set up requires that we call play on the video player before requesting ads. So what's happening is that the player starts loading the content, then the ads play. I've followed up with the contrib-ads folks to see if there's a way around this.

Hi again,
Thank you for looking into this issue.
I have been doing some testing with the videojs-contrib-ads plugin as well to see if I could locate the issue.
I modified their example to call the DPF and as you can see on the video no content is shown before the ad starts.
Test of videojs-contrib-ads

Is this the opacity CSS fix you mentioned earlier or is this something else? Could you share the details of the fix?

I modified this example
Videojs-contrib-ads example
To work with DFP, to test if the issue had to with videojs-ima or videojs-contrib-ads
I added an adServerUrl to app.js
player.exampleAds({
      debug: true,
      adServerUrl:'http://pubads.g.doubleclick.net/gampad/ads?adk=831413252&ancr=http%3A%2F%2Fsport.tv2.dk&ciu_szs=300x250%2C930x180&correlator=3374934648684544&cust_params=site%3Dsport%26sport%3Dformel%2B1%26node_type%3Darticle%26url%3Dhttp%3A%2F%2Fsport.tv2.dk%2Fformel-1%2F2016-02-23-kevin-magnussen-det-er-ligesom-at-vinde-i-lotto%26is_video_node%3D1%26page_type%3Dcontent%26CxSegments%3D8ka9i4jn8z6z%7C8kaarmsyvdqa%7C8kafxepvjt82%7C8kldv66rxucp%7C8kljo1cpvcov%7C8klkj0h176ir%7C8kwio2e8fryc%7C8kwmtsqt17yr%7C8kwmtsqt17ys%7C8l7i5bq95el5%7C8l7id2tlnufd%7C8l7jnaiz0hji%7C8m52toqzepq2%7C8mg5x81qxdhu%7C8nd2ye5sunwq%7C8noc9ibd680r%7C8noc9ibd680u%7C8noc9ibd680w%7C8noc9ibd680x%7C8noc9ibd6810%7C8noc9ibd6811%7C8noc9ibd6812%7C8olfcjflimg9%7C8olfcjflimga%7C8owuyzqhzqcb%7C8p7ztd8gynbr%7C8p7ztd8gynbs%7C8p8190y9vkar%7C8pj3gr2qi6gp%7C8pj4ck96cf70%7C8pj4dnfezgmg&description_url=&dt=1456236522135&eid=41351096&env=vp&flash=<IP_ADDRESS>6&frm=2&frmd=1&gdfp_req=1&ged=ta1_ve3_pt4.3.u_td4_tt0_pd0_bs10_la11000_tv1_is2_er0.0.349.620_sv2_sp1_vi0.0.349.620_vp100_ct1_vb1_vl1_vr1_eb24171&hl=da&impl=s&iu=%2F19784602%2Ftv2dk-web%2FSport%2FSport_Underside%2FSport_Underside_Video_1&mpt=theplatform%2Fpdk&mpv=5.6.2&osd=6&output=xml_vast3&scor=49256129888256&sdkv=3.226.0&sdr=1&spotlength=65&sz=640x360&u_ah=1053&u_asa=1&u_aw=1920&u_cd=24&u_h=1080&u_his=3&u_java=false&u_nmime=7&u_nplug=5&u_tz=60&u_w=1920&unviewed_position_start=1&url=http%3A%2F%2Fsport.tv2.dk%2Fformel-1%2F2016-02-23-kevin-magnussen-det-er-ligesom-at-vinde-i-lotto&video_id=614916163922&vpos=preroll'
    });

and changed example-integration.js to parse the VAST fil from DPF like this
/**
 * Example ad integration using the videojs-ads plugin.
 *
 * For each content video, this plugin plays one preroll and one midroll.
 * Ad content is chosen randomly from the URLs listed in inventory.json.
 */
(function(window, document, vjs, undefined) {
"use strict";

  /**
   * Register the ad integration plugin.
   * To initialize for a player, call player.exampleAds().
   *
   * @param {mixed} options Hash of obtions for the exampleAds plugin.
   */
  vjs.plugin('exampleAds', function(options){

    var

      player = this,

      // example plugin state, may have any of these properties:
      //  - inventory - hypothetical ad inventory, list of URLs to ads
      //  - lastTime - the last time observed during content playback
      //  - adPlaying - whether a linear ad is currently playing
      //  - prerollPlayed - whether we've played a preroll
      //  - midrollPlayed - whether we've played a midroll
      //  - postrollPlayed - whether we've played a postroll
      state = {},

      // just like any other video.js plugin, ad integrations can
      // accept initialization options
      adServerUrl = (options && options.adServerUrl) || "inventory.json",
      midrollPoint = (options && options.midrollPoint) || 15,

      // asynchronous method for requesting ad inventory
      requestAds = function() {

        // reset plugin state
        state = {};

        // fetch ad inventory
        // the 'src' parameter is ignored by the example inventory.json flat file,
        // but this shows how you might send player information along to the ad server.
        var xhr = new XMLHttpRequest();
        xhr.open("GET", adServerUrl);
        xhr.onreadystatechange = function() {
          if (xhr.readyState === 4) {
            try {
              state.inventory = xhr.responseXML;
              player.trigger('adsready');
            } catch (err) {
              throw new Error('Couldn\'t parse inventory response as JSON');
            }
          }
        };
        xhr.send(null);

      },

      // play an ad, given an opportunity
      playAd = function() {

        // short-circuit if we don't have any ad inventory to play
        if (!state.inventory) {
          return;
        }

        var srcFile = document.evaluate('//MediaFile', state.inventory, null, XPathResult.STRING_TYPE, null);

        console.log(srcFile.stringValue);

        // tell ads plugin we're ready to play our ad
        player.ads.startLinearAdMode();
        state.adPlaying = true;

        player.src(srcFile.stringValue);

        // when it's finished
        player.one('adended', function() {
          // play your linear ad content, then when it's finished ...
          player.ads.endLinearAdMode();
          state.adPlaying = false;
        });

      };

    // initialize the ads plugin, passing in any relevant options
    player.ads(options);

    // request ad inventory whenever the player gets new content to play
    player.on('contentupdate', requestAds);
    // if there's already content loaded, request an add immediately
    if (player.currentSrc()) {
      requestAds();
    }

    player.on('contentended', function() {
      if (!state.postrollPlayed && player.ads.state === 'postroll?') {
        state.postrollPlayed = true;
        playAd();
      }
    });

    // play an ad the first time there's a preroll opportunity
    player.on('readyforpreroll', function() {
      if (!state.prerollPlayed) {
        state.prerollPlayed = true;
        playAd();
      }
    });

    // watch for time to pass 15 seconds, then play an ad
    // if we haven't played a midroll already
    player.on('timeupdate', function(event) {

      if (state.midrollPlayed) {
        return;
      }

      var currentTime = player.currentTime(), opportunity;

      if ('lastTime' in state) {
        opportunity = currentTime > midrollPoint && state.lastTime < midrollPoint;
      }

      state.lastTime = currentTime;
      if (opportunity) {
        state.midrollPlayed = true;
        playAd();
      }

    });

  });

})(window, document, videojs);

So to me it looks like an issue in the videojs-ima plugin

Any news on this issue? :-)

Hi there,
I'm still working on this one. The sample is interesting, because in the state diagram in their README it looks like you should never arrive at "preroll?" or "adstart" without calling play on the player. That sample never calls play at all though. I'll need to look into this more to see if we can modify our code to behave more like their sample code.

#167 Guess they could be related

I had to pause the player and allow the preroll to start.
player.play();  // Call play on the videojs player to arrive at "preroll" or "adstart" player.pause(); // Pause videojs player before preroll

Playing around with timeouts looks to have fixed the issue more or less, set both to 5000

@mimse Would mind sharing what timeouts you set to 5000 to fix this?

@ehoch
prerollTimeout: 5000,  timeout: 5000

Adding both timeouts seem to have solved this... I don't see either of these options in the documentation though. What exactly is the difference? Should there just be a single option?

Those timeouts are actually options on the contrib-ads plugin that this plugin uses - you can find documentation on them here.

Understood -- are there only certain options you auto-pass to the contrib-ads plugin? I wouldn't have even guessed to go there because of the attribute contribAdsSettings
Thanks for the prompt response

I think we surfaced them because we expected them to be used often, but in retrospect it would have been better to have one and only one place to specify this, which would be contribAdsSettings.
Whatever you provide to the contribAdsSettings param will override what you provide in the top-level IMA plugin settings, so you can provide them in either place.

Is this issue fixed now?

This issue is fixed now, except for one edge case - if you're on a very slow connection, you could see content before ads. This is because the contrib-ads preroll timeout is a soft timeout - if we hit that timeout, we will start content, but if the pre-roll loads after that we will interrupt content to play it. More info in #571, which we're still deciding if we want to merge or not.

This issue is fixed now, except for one edge case - if you're on a very slow connection, you could see content before ads.

Or one is using a vast/vmap waterfall, since these requests are queued and not concurrent. Any chance this soft timeout could be made configurable?

This is configurable in the contrib-ads settings. You can set it like this in your IMA plugin options:
{
  ...
  contribAdsSettings: {
    prerollTimeout: XXX
  }
}

A complete list of available settings for contrib-ads can be found here.

Thank you.


Add NODEJS Screenshot

@CITGuru can you add a little screenshot of the npm version?

Can you do it instead, my hands are tight right now. Here's a screenshot

Alright @CITGuru
Thank you!

Any plan for a rest api, i think it would be nice if you have one. The rest api can be base on Django or Express. This will be easier since we already nodejs and python version

Lets see, not sure tho. But the rest api will probably be base on python/django cos of time

@BolajiAyodeji Another thing is try and redesign the website. So many redundant element and color combo. Design something minimal, with the three colors. I know its not easy just try to. And also on the website show other versions and packages. Look at this https://indreed.herokuapp.com/

What part contains Redundant elements?
Kindly raise another issue for the UI Redesign so we can look into it.
Would check that link and add all other packages to the site.

I just checked the link, nice.
In summary what would our API do?

Returns the phone, network, valid, phone_prefix
{
    "phone":"08182315466",
    "network:"9mobile",
    "prefix":"0812",
   "valid": true
}

Cool @CITGuru
You can proceed!
We'd add more features soon!
I still have few features in view.

And also we should try making it detect all kinds of phone number network. Thats a future feature tho

Raise the issue for UI Redesign!


Make code work on python 2 and 3

Does this still work in Python 2.7? I haven't tried it. I just want to make sure before I merge.

Also, if it does work in 2.7, could you apply the changes to the ufo3 branch? That's the branch that is in active development.

Also, if it does work in 2.7, could you apply the changes to the ufo3 branch? That's the branch that is in active development.

I tested it with 2.7.10 and 3.5.0.
I also started working on the ufo3 branch. I'll open a different pull request.


Batching for hyperstyle tool

Batching for hyperstyle tool implementation. The idea is to group solutions by language version and use --new-format flag to run hyperstyle on a directory with solutions and then split report by files related to the solution.

@tiginamaria please, fix CI


Up-gradation from babenkoivan/scout-elasticsearch-driver to this pacakge

Hey I got a old laravel application that is using babenkoivan/scout-elasticsearch-driver. I was updating the laravel version from 5.x to 8.x and found that the package no longer maintained and author suggesting to use this one instead. Is there any up-gradation  guide that I need to follow

Hi @abdullah99R, unfortunately, there is no step-by-step guide that you could follow, but I can recommend you to read this article to get familiar with the new approach. It is a bit outdated, but I think you can get the main idea of how things work now.


Test accompanying https://github.com/keras-team/keras/pull/12566

Summary
Related Issues
PR Overview
Test accompanying https://github.com/keras-team/keras/pull/12566

Closing outdated PR.


[enhancement] cannot compile this non-scalar arg to printf yet

ROCm version: 4.5.2
main.cu:10:61: warning: format specifies type 'int' but the argument has type 'const __HIP_Coordinates<__HIP_ThreadIdx>::__X' [-Wformat]
    printf("thread %d", threadIdx.x);
                           ~~                               ^
main.cu:10:5: error: cannot compile this non-scalar arg to printf yet
    printf("thread %d", threadIdx.x);

threadIdx etc are implemented in https://github.com/ROCm-Developer-Tools/hipamd/blob/develop/include/hip/amd_detail/amd_hip_runtime.h#L377
For performance reasons, they are not of integer type, therefore cannot be accepted by printf.
However, to fix this issue, we are going to lose performance.
A workaround is to explicitly cast threadIdx.x etc to int when passing to printf.
Considering performance is more important than printf, and workaround is easily available, we won’t fix this.

printf() is for debugging, and not for performance in the first place.  Thanks.

@zjin-lcf  Hi, were you able to resolve this issue on the latest HIP? If so can we close this ticket?


Test: APPLICS-358-RTHYS-change-answers

Describe your changes

Changes to the RTHYS flow
Changes to how we store case data
Adding custom commands to navigation
Removed unused methods in test
Fixed failing tests

Useful information to review or test

Type of change 🧩

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation update
[X] Other (please explain in the description section above)

Checklist before requesting a review

[X] I have performed a self-review of my own code
[X] I have double checked this work does not include any hardcoded secrets or passwords
[X] I have made corresponding changes to the documentation
[ ] I have provided details on how I have tested my code
[X] I have referenced the ticket number above
[X] I have provided a description of the ticket
[ ] I have included unit tests to cover any testable code changes

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

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

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


[Star Wars FFG Alternate] Initial submission to Roll20

Changes / Comments
Initial submission of a new character sheet.
Roll20 Requests
Comments are very helpful for reviewing the code changes. Please answer the relevant questions below in your comment.

[ X ] Does the pull request title have the sheet name(s)? Include each sheet name.
[ ] Is this a bug fix?
[ ] Does this add functional enhancements (new features or extending existing features) ?
[ ] Does this add or change functional aesthetics (such as layout or color scheme) ?
[ ] If changing or removing attributes, what steps have you taken, if any, to preserve player data ?
[ X ] If this is a new sheet, did you follow Building Character Sheets standards ?

If you do not know English. Please leave a comment in your native language.

Done! :-)

Looks good and different enough from the simple sheet of the same game. I'll add it!

Awesome!  Thanks :-)


Add get slice to parent

Objective

Make it possible to write APIs that require a type or homogenous storage for both Children & Parent that is agnostic to edge direction.

Solution

Add a way to get the Entity from Parent as a slice.

Bikeshedding here, but get_slice is consistent with get , but perhaps as_slice might be a better naming?

Agreed. Follows rust convention.


chore: Only show Whats new if there is a beamer app id

What it solves
Relates to #3413
Resolves https://github.com/gnosis/safe-react/pull/3515#issuecomment-1042845560
How this PR fixes it
If not Beamer app id exists, the "Whats New" Button stays hidden and Beamer is not included.
How to test it

Open the Safe app
Observe that there is no "Whats new" Button in the sidebar
Accept all cookies
Observe that the console shows a Beamer app id missing warning

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

1 of 2 (50.0%)  changed or added relevant lines in 2 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage increased (+0.005%) to 34.867%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/utils/beamer.ts
0
1
0.0%

Files with Coverage Reduction
New Missed Lines
%

src/utils/beamer.ts
1
0%

Totals

Change from base Build<PHONE_NUMBER>:
0.005%

Covered Lines:
3364

Relevant Lines:
8718

💛  - Coveralls


Updating for CD, automatic release

[ ] Make sure you are opening from a topic/feature/bugfix branch (right side) and not your main branch!
[ ] Ensure that the pull request title represents the desired changelog entry
[ ] Please describe what you did
[ ] Link to relevant issues in GitHub or Jira
[ ] Link to relevant pull requests, esp. upstream and downstream changes
[ ] Ensure you have provided tests - that demonstrates feature works or fixes the issue

Updating cd.yml file (from the master branch, not yet on the main branch)
adding yaml file (from the master branch, not yet on the main branch)
Do not ignore .mvn dir contents (already in another pull request)
Use parent pom 4.24 (would be best if dependabot were enabled on this repo)
Use changelist property for version (incrementals) (already in another pull request)
Use scmTag symbol, not explicit tag (already in another pull request)
Use most recent plugin bom release (would be best if dependabot were enabled on this repo)
Use most recent JQuery plugin release (see the comment that explains why you should use a different JQuery library)
Remove unused dependency, do not include jsr305 jar in hpi (remove jsr305 jar from the hpi because it is not needed)


[DO NOT INTEGRATE] testing with max active of 1

run performance tests please
cs-hotrod

run performance tests please
cs-hotrod

run performance tests please
cs-hotrod

run performance tests please
cs-hotrod

Latest perf numbers actually showed a decrease in performance (I hard coded it to 1 instead of setting config). My guess is that the radar gun test was overriding the value. This should be abandoned until we can look into it further. My guess is we would need to limit work done while holding the channel to do this.


fix(package): update chalk to version 2.3.0

Closes #108

Coverage remained the same at 91.494% when pulling 4d7e939dc31e77824148c97cb9aeee9aa4ee8788 on greenkeeper/chalk-2.3.0 into d95e0ce94be41305a939f7a0a0c8c50459abb8fa on master.


A01612430 Homework 2

Worked fine the first time but now it get hangs on this
➜  06 git:(pullrequest) ✗ ./mclient
Welcome to milk factory seller system
0 = Exit
1 = Consult bottles
2 = Sell bottles
2


Oracle RAW(16) datatype shows wrong

Hello guys
I recently started using DBeaver, I must say it's an enormous advantage compared to Oracle SQL Developer.
There is an issue though, we use the datatypeRAW(16) with a default of sys_guid() for primary keys. When doing a select in OSD it shows a normal GUID, in DBeaver it shows some weird symbols. What could be wrong?

Could you post sample DDL/insert?

Thanks for the quick reply!
Table is created like this:
CREATE TABLE MCVSSETDEF(
PKMCVSSETDEF RAW(16) DEFAULT sys_guid(),
GROEP CHAR(4) NOT NULL,
NAAM VARCHAR2(35) NOT NULL,
TIJDUPDATE DATE DEFAULT SYSDATE,
GEBRUIKER VARCHAR2(8) DEFAULT USER,
CONSTRAINT MCVSSETDEF_PK PRIMARY KEY (PKMCVSSETDEF)
);
After I did this insert: INSERT INTO MCVSSETDEF (groep, naam) values('2238','TestSet');
I do this select: SELECT * FROM MCVSSETDEF;
I get this result:

In Oracle SQL Developer I get this result:

Is that the info you need?

Yes, thanks.
You can change binary presentation in preferences:

So results will look just like in SQL Developer:

Wonderful, thanks for the quick replies and the solution!

Note: For anyone like me using 4.3.5, this option is under Preferences -> Result Sets -> Editors now.

I'm facing another issue. after changed this option, the display is fine.
but i did select like SELECT * FROM DEVICE_REGISTRATION d WHERE d.REGISTRATION_ID = 'B69A7BC09C4D428B84EE059EED78348B'; the REGISTRATION_ID type is RAW(16). nothing selected.

This should work.
I've also fixed native Oracle hex formatter (so you can use result "Filter by" menu).

SELECT * FROM table t WHERE t.ID = HEXTORAW('E6B92841FC9E4CBF97607D87389439C3'); i'v tried this way. it's working.

In DBeaver v6.0.1, the option is now under Window > Preferences > Editors > Data Editor > LOB Editors

This answer is obsolete. The option is now under Window > Preferences > Editors > Data Editor > LOB Editors.

Yes, thanks.
You can change binary presentation in preferences:

So results will look just like in SQL Developer:

This changed once again on 7.3 it is in Editors > Data Editor > Binary Editors


Advancement text on client side not resolved.

I might have done something wrong as I'm running this mod only on the server, but when you get an advancement or lookt at the tree their names are not the actual String value but the path.
Example:

What language are you using?


_create builder methods should have arguments in id order

The arguments should be ordered according to the id attribute when present.
In the monster_test.fbs this would be:
ns(Monster_create(pos, mana, hp, name, ...))
because pos has id:0, mana has id: 1, hp has id: 2, and name has id: 3.
but is currently sorted according to the literal text order in the schema:
ns(Monster_create(pos, hp, mana,  name, ...))
This is not compatible with Googles C++ create call and can break code if the schema is later rearranged.
In any case it is not possible to add new fields to the schema without a compile error because the create call is not vararg, but this is still safe, unlike the ordering.
This is not trivial to fix because it might break existing code.
Suggestions are welcome.
NOTE: this also potentially relates to JSON parsing because argument vectors might be supported so a Monster table could be given as [pos, hp, mana, name, ...] as opposed to { "pos":pos, "hp":hp, "mana":mana, "name":name}. Since this feature is not currently avaialable it cannot break anything, but if added, it would be inconsistent with the current _create call.

There is also the issue with depracated fields. C++ does have an argument for them, but that can lead to unexpected results as well. FlatCC also currently ignores them.
It could be required that a deprecated argument should always be a zero integer and debug assert if it is anything else.

This is now fixed as a breaking change in v0.5.3.
Deprecated fields are not included in create calls but the arguments are now ordered by field id. For schemas without id attributes there is no difference.
Consider the start of the monster_test.fbs Monster table:
table Monster {
  pos:Vec3 (id: 0);
  hp:short = 100 (id: 2);
  mana:short = 150 (id: 1);
  name:string (id: 3, required, key);
  color:Color = Blue (id: 6);
  inventory:[ubyte] (id: 5);
  friendly:bool = false (deprecated, priority: 1, id: 4);
  /// an example documentation comment: this will end up in the generated code
  /// multiline too
  testarrayoftables:[Monster] (id: 11);
...

The call args in monster_test_builder.h are now:
#define __MyGame_Example_Monster_call_args ,\
  v0, v1, v2, v3,\
  v5, v6, v8, v9,\
  v10, v11, v12, v13,\
  v14, v15, v16, v17,\
  v18, v19, v20, v21,\
  v22, v23, v24, v25,\
  v26, v27, v28, v29,\
  v30, v31, v32, v33, v34, v35

but they used to be
#define __MyGame_Example_Monster_call_args ,\
  v0, v2, v1, v3,\
  v6, v5, v11, v10,\
  v28, v24, v29, v12,\
  v8, v9, v31, v13,\
  v14, v15, v16, v17,\
  v18, v19, v20, v21,\
  v22, v23, v25, v26,\
  v27, v30, v32, v33, v34, v35

Notice how v4 is omitted because it is deprecated, and v6 used to come before v5 because of reordering the schema. Some arguments are also absent because union types and union values are treated as a single argument. This is true both before and after this fix.


check-reaper fails with forbidden error due to incorrect permissions

Describe the bug
After installing new kuberhealthy instance using version 33 of the helm chart, I get the following error:
time="2020-11-23T00:33:10Z" level=info msg="Single namespace not specified, running check reaper across all namespaces"
time="2020-11-23T00:33:10Z" level=info msg="Listing checker pods"
time="2020-11-23T00:33:10Z" level=info msg="Found: 16 checker pods"
time="2020-11-23T00:33:10Z" level=info msg="Found more than 5 checker pods with the same name in status `Succeeded` that were created more recently. Deleting pod: dns-status-internal-1606090805"
time="2020-11-23T00:33:10Z" level=info msg="Deleting Pod:  dns-status-internal-1606090805  in namespace:  kuberhealthy"
time="2020-11-23T00:33:10Z" level=info msg="Found more than 5 checker pods with the same name in status `Succeeded` that were created more recently. Deleting pod: dns-status-internal-1606090925"
time="2020-11-23T00:33:10Z" level=info msg="Deleting Pod:  dns-status-internal-1606090925  in namespace:  kuberhealthy"
time="2020-11-23T00:33:10Z" level=info msg="Finished reaping checker pods."
time="2020-11-23T00:33:10Z" level=info msg="Beginning to search for khjobs."
time="2020-11-23T00:33:10Z" level=error msg="Error: failed to retrieve khjob list with error khjobs.comcast.github.io is forbidden: User \"system:serviceaccount:kuberhealthy:check-reaper\" cannot list resource \"khjobs\" in API group \"comcast.github.io\" at the cluster scope"
time="2020-11-23T00:33:10Z" level=error msg="Failed to reap khjobs with error:  khjobs.comcast.github.io is forbidden: User \"system:serviceaccount:kuberhealthy:check-reaper\" cannot list resource \"khjobs\" in API group \"comcast.github.io\" at the cluster scope"
time="2020-11-23T00:33:10Z" level=info msg="Finished reaping khjobs."

Looking at the chart, it looks like the cheap-reaper user is associated with the admin role, which is not supplied by the chart, and does not have access to the khjob resource.
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: check-reaper
  selfLink: /apis/rbac.authorization.k8s.io/v1/clusterrolebindings/check-reaper
  uid: 2479fff8-9ae5-4093-a8bb-93179e8aa267
  resourceVersion: '40220777'
  creationTimestamp: '2020-11-22T23:45:37Z'
  labels:
    app.kubernetes.io/managed-by: Helm
  annotations:
    meta.helm.sh/release-name: kuberhealthy
    meta.helm.sh/release-namespace: kuberhealthy
subjects:
  - kind: ServiceAccount
    name: check-reaper
    namespace: kuberhealthy
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: admin

https://github.com/Comcast/kuberhealthy/blob/master/deploy/helm/kuberhealthy/templates/check-reaper.yaml#L52
Expected behavior
The chart should not supply service accounts that depend on roles already installed on the system. Rather the service account should depend on a role such as kuberhealthy that it provides. Such as maybe the kuberhealthy role for example.
The failure of the cronjob to operate correctly should more more obvious (unless it really doesn't matter, but in that case why even have a cronjob?).
Versions

Kubernetes Version: 1.16.3
Kuberhealthy Release or build: helm chart version 33

Looks like we should add a new ClusterRole here.


calling python object in julia way, e.g. method(obj, args)

This is not an issue but a trick to call methods of a python object in a similar way as julia
currently we have to write o[:method](args)
we can call it with :method(o, args) by extending the Base.call function
Base.call(method::Symbol, o::PyObject, args...) = o[method](args...)

This would certainly be possible, but I'd prefer to keep the syntax closer to Python, in order to make it easier to translate Python documentation into Julia code when calling a Python library.


ttly: Totally

Description
ttly is the abbreviation for Totally.

assign me please , i can work on this issue

You got it!


Bug: Folder sizes aren't calculated correctly for network drives

Description
Folders on mapped network drives appear to have a size of 0 bytes and contain '0 files, 0 folders' when Windows Explorer shows the correct size and contents - when the folders' properties are viewed.
Steps To Reproduce

Map a network drive
Add a folder with contents
Check the properties of the folder
The folder appears (incorrectly) to have a size of zero bytes

Expected behavior
The properties view of network drive folders should show the correct size and contents of the folder.
Files Version
v<IP_ADDRESS>
Windows Version
Windows 11 21H2 22000.282
Relevant Assets

@yaichenbaum

@xjarlie is this still an issue in v2.3.3?

Still an issue (duh, just try the steps in the description 🙃). We don't calculate the size and items number for network folders as it would be painfully slow with Storage API. Switching to WinUI may make this possible, (or maybe query the size with the fulltrust process somehow).

Ha! I don't either, I've just set a folder as shared and then accessed it with \\localhost\test folder 😆 Sorry about the "duh" btw.

I'll have to try this trick

Is this still an issue in the preview version. https://files.community/download

Yes

Description
Folders on mapped network drives appear to have a size of 0 bytes and contain '0 files, 0 folders' when Windows Explorer shows the correct size and contents - when the folders' properties are viewed.
Steps To Reproduce

Map a network drive
Add a folder with contents
Check the properties of the folder
The folder appears (incorrectly) to have a size of zero bytes

Expected behavior
The properties view of network drive folders should show the correct size and contents of the folder.
Files Version
v<IP_ADDRESS>
Windows Version
Windows 11 21H2 22000.282
Relevant Assets

NetworkStackInProcessResOverlay
File count: 0
Size: 0B (0B)

I would love for there to be an option to disable this feature for non-local disks. For local disks it works great but when I open a folder in a large SMB file share, the app just freezes and crashes with this feature enabled.

It doesn't work on network drives so the crash is probably not from this please make a separate bug report for it.

The issue appears to have already been resolved.


Open Telemetry Support.

Hi Folks,
i would like to know if there's support for open telemetry in the existing library, Something similar to otel-redis and otel-mongo. Using which we can trace API calls.

Hi @kutty-kumar
We do have an example for APM and OpenCensus that you can find here, if you want to use otel you can do something like this :
cfg := elasticsearch.Config{
    Addresses: []string{"http://localhost:9200"},
    Transport: otelhttp.NewTransport(http.DefaultTransport),
}

client, err := elasticsearch.NewClient(cfg)
if err != nil {
     log.Fatalln(err)
}

res, err := client.Info()
if err != nil {
     log.Fatalln(err)
}
defer res.Body.Close()

Which configured with the exporter of your choice can do the trick and trace API calls!

thanks @Anaethelion will try and check this out


Deleting a cluster through the controller API interface does not take effect

Calling the delete cluster interface to delete the cluster, the kvrocks cluster can still be accessed, and the node.conf file of the kvrocks node is still present, but the kvrocks node has not been reset
Delete/app/v1/namespaces/{namespace}/clusters/{cluster}

@pangtujun Thanks for your feedback, will take a look soon.

@pangtujun It's an expected behavior, we don't want to delete cluster information from the nodes for now. But you can use CLUSTER RESET to do that.


Automate conversion of vanilla contracts to upgradeable contracts

Create a new project in the monorepo that accepts a set of sources and build artifacts (this is, including the solc-generated AST) and creates corresponding contracts which are upgradeable (ie have initializers instead of constructors, among other things).

[ ] Build a function that, given original source and AST, can inject changes on the original source via AST-based instructions. Check existing linters who already do this. Note that we don't need to support any arbitrary change, only the ones required for implementing the following items.
[ ] Build a function that, given a contract's AST, adds a storage gap at its end, so that total storage slots amount to 100.
[ ] Build a function that, given a contract's AST (with no inheritance), changes its constructor to an initializer function. Discuss whether we should still have a base Initializer class, or we should embed all initialization logic (ie the initialized flag) in the contract.
[ ] Build a function that, given a contract's AST (with no inheritance), scans all variable declarations with initial values, and moves those to the initializer function (creating the initializer if it does not exist).
[ ] Build a function that, given a contract's AST and all its base contracts ASTs, applies all the transformations listed above recursively. Consider special cases around constructors and inheritance: calling super in the ctor, calling the constructor by contract name in the declaration of the function, or even in the contract declaration. See the ANTLR grammar to ensure we capture all scenarios. Also consider whether we should condense all initializer code in the most derived contract, or we should change all base contracts having one initializer for each of them.
[ ] Build a function that, given a set of artifacts and a contract by name, collects the contract's AST and all of its ancestors, creating the input required for the function above. Note that this function may already exist in upgrades.js.

Linters

Solhint
Solium
Good source of reference code and algorithms.

A Solidity parser for JS built on top of a robust ANTLR4 grammar

@ylv-io note that fede's parser yields a different AST than that of solc. If we do use it, we should consider how difficult it would be to keep the syntax definition up to date, and also time it vs solc.

You may also want to check out the experiments from labs on this from last year. There is also a link to Solium's autofix that could come in handy.

@spalladino how do even know that use different AST? And what kind of AST it is? Can't find any docs on that.

@ylv-io you won't find docs on either one. I'd suggest you just run the ANTLR parser and compare it to the AST generated in the solc build artifact, you'll see they use different formats right away.

Docs on artifacts AST.

There is a grammar.txt in the solidity repo which I hadn't seen before, though I'm not sure whether it's actually used or just documentation https://github.com/ethereum/solidity/blob/develop/docs/grammar.txt

And the AST.h file may be of help as well https://github.com/ethereum/solidity/blob/develop/libsolidity/ast/AST.h#L378 (e

by @spalladino

prettier-plugin-solidity does automatic Solidity code transformations.


feat(runtime-core): onEffectCleanup API

Summary
Introduced new onEffectCleanup() API and getCurrentEffect() API for runtime-core, its function is basically the same as onCleanup in Watch API, but it supports encapsulating cleanup logic into reusable functions, and multiple cleanup functions can be registered at the same time.

The onEffectCleanup API has already been implemented in Vapor. Here are corresponding Issue and PR links:
Issue / PR

Basic example
This is one of the assumed function in another TypeScript file:
export function queryAsyncData(api, id) {
  const { response, cancel } = doAsyncWork(api, id)
  // `cancel` will be called if this function get called in Watch API and the effect source changed
  // so that previous pending request will be cancelled
  // if not yet completed
  if (getCurrentEffect()) {
    onEffectCleanup(cancel)
  }
  return response
}

And this is one of the Vue SFC file:
<script setup>
watchEffect(async () => {
  data1.value = await queryAsyncData('api1', id.value)
  data2.value = await queryAsyncData('api2', id.value)
})

// When getting called outside of the scope of Watch API,
// since there is no active effect scope,
// therefore the cleanup callback for cancel will not be registered
async function pull() {
  data3.value = await queryAsyncData('api3', id.value)
}
pull()
</script>

Additionally, provide support for watch
watch(id, async (newId, oldId) => {
  data1.value = await queryAsyncData('api1', newId)
  data2.value = await queryAsyncData('api2', newId)
})

Example in Vapor Mode
Here's a brief explanation of how it works using an example with @[eventName]="handler", where on function is provided by runtime-vapor at runtime:
// in component setup or vapor render
watchEffect(() => {
  on(el1, eventName.value, handler)
  on(el2, eventName.value, handler)
})

// in runtime-vapor pkg
function on(el, event, handler) {
  el.addEventListener(event, handler)
  if (getCurrentEffect()) {
    onEffectCleanup(() => {
      el.removeEventListener(event, handler)
    })
  }
}

With onEffectCleanup, functions like on can accommodate both use cases in watch and setup.

Thanks to @LittleSound. Evan implemented this via https://github.com/vuejs/core/commit/2cc5615590de77126e8df46136de0240dbde5004


cargo: update to nix >= 0.24

uname() can now fail, and now returns an &OsStr that might not be UTF-8.  Both of these error cases are really only theoretical, and we can't switch to returning a Result without breaking API.  (And in fact, nothing in the crate currently returns a Result.)  Just return None in both of these cases.
Also enable only the nix functionality we use, since nix 0.24 added detailed feature flags.

Hmm, the branch is updated but the PR is in a weird state where it doesn't show the changes.

Okay, a repush fixed it.


fix null module reference when concatenating entryModule in split chunk

Fixes #8911.
ModuleConcatenationPlugin normally deletes the modules that it has concatenated together, and updates all references to the old modules to point at the new ConcatenatedModule. The plugin is currently only updating references in chunks that directly include the old modules. With specific splitChunks configurations however, a chunk's entryModule may reference a module that is not included in the chunk itself, and instead lives in some common chunk.
This means that after ModuleConcatenationPlugin runs, a chunk can reference an entryModule that doesn't actually exist anymore. This leads to a null reference in the chunk, and was the cause of the runtime errors in #8911. I've fixed the issue by having the plugin update entryModule references in all chunks, not just those that directly include one of the concatenated modules.

What kind of change does this PR introduce?
A bugfix.

Did you add tests for your changes?
Yes: test/configCases/concatenate-modules/split-chunk-entry-module

Does this PR introduce a breaking change?
No.

What needs to be documented once your changes are merged?
N/A

Thanks


feat: add button that finds missing OCR captions

Hi !
I decided to add a new menu button that allows to find the missing captions in the collection. Hope you like it!
You can find reference to this in the issue #17
Have a nice day and good luck on your studies!

I just realized that some users use the OCR in a dedicated field instead of as html code.
Do you think it would be good enough to have this button appear only if the setting is set to "tooltip" ?

Hi there, thanks for this - I'm literally in the middle of exam period, but will get this merged in a week or so. Thanks for your contribution @thiswillbeyourgithub !

Good luck on your exams :) The world needs more doctors that know how to code >_< !
Btw, I'm still on anki 2.1.44 so I don't really know if it works in new versions.

I added a new commit for a new button :)
I tested it and it seems to work fine on anki 2.1.49


Implement a dialog to modify the flex item atrributes when an view holder is  clicked

@yaraki could you have a look?

Thanks! Fixed.


Paths are wrong on 64bits computers

Paths on 64bits computer are wrong. Seems to be in there: C:\Program Files (x86)\Microsoft Visual Studio\Shared\Common\VSPerfCollectionTools\x64

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

ID: 19fc0b32-aa03-b072-067c-f3d961dca152
Version Independent ID: 6299d0c5-d674-7e2f-8d3d-4ba097d2ea52
Content: Specifying the Path to Profiling Tools Command Line Tools - Visual Studio
Content Source: docs/profiling/specifying-the-path-to-profiling-tools-command-line-tools.md
Product: visual-studio-windows
Technology: vs-ide-debug
GitHub Login: @Mikejo5000
Microsoft Alias: mikejo

Fixed already for managed path.

Updating to fix formatting. But it looks like native path is OK.
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Team Tools\Performance Tools\x64


Support BIP39 Mnemonic Phrases for HD Wallet Seed

Mnemonic Phrases - BIP39
HD Wallets - BIP32
Test Vectors - Here
Tasks:

[x] mnemonic generation
[ ] mnemonic import
[ ] test vectors

hd wallet generation, mnemonic generation from entropy, hd wallet seed generation from password salt implemented: e318e5008e872e3f41d481d096eda25b13a85615

#23


Demo fails

When I try to connect, it shows:
PDOException in Connector.php line 50:
SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
http://demo.serverfire.net/panel/login

fixed

Issue should be reopened... ;)


fix: add missing images

Hi Aggis, can you make images lower than 150kB please? Thank you

Hi Romaric. I will take a look once I am home.
On Thu, Sep 23, 2021, 8:43 AM Romaric Philogène @.***>
wrote:

Hi Aggis, can you make images lower than 150kB please? Thank you
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Qovery/documentation/pull/64#issuecomment-925520737,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AQNUY4JA47H2VGN5G3ULQKDUDK5BBANCNFSM5ES2FBEQ
.

@evoxmusic images have been updated. now they comply with the 150 kb limit


No way to write subsection of document?

sxd_document::writer::format_element is private. Once one has selected an element via xpath a chunk of a document there doesn't appear to be a way to write it on its own? Am I missing something or is this an accurate current limitation?
(Loving your work)
With kind regards,
Giles

this an accurate current limitation?

Yep!
Would you mind sharing what kind of behavior you'd like to see?


Added Lumen recipe

This PR adds support for Lumen, this is PR is based on the work by Anton Medvedev with his Laravel recipe.

Q
A

Bug fix?
No

New feature?
Yes

BC breaks?
No

Deprecations?
No

Fixed tickets
N/A

Do not forget to add notes about your changes to CHANGELOG.md

Why not to use laravel recipe or extend it? It's simple copy-paste recipe.
Also please rebase, test are falling.

You can't use the laravel recipe because it fails due to Artisan on Lumen not fully supporting all the commands that Artisan are available for Laravel.
For example; php artisan view:clear  doesn't work on Lumen because Lumen doesn't has a viewstack.
I will rebase, to make sure that the tests aren't failing anymore

What about extending laravel and only override deploy task?

Do not forget to add notes about your changes to CHANGELOG.md

Do you have an example for overriding ? Then I will implement it accordingly

Or do you mean something like this ?
<?php
namespace Deployer;

require 'recipe/laravel.php';

desc('Deploy your project');
task('deploy', [
    'deploy:prepare',
    'deploy:lock',
    'deploy:release',
    'deploy:update_code',
    'deploy:shared',
    'deploy:vendors',
    'deploy:writable',
    'artisan:cache:clear',
    'deploy:symlink',
    'deploy:unlock',
    'cleanup',
]);

Yes

Check, then I will make my modification accordingly! 😄

Okay.


Add license

Review Error for DanielaDudyova @ 2024-01-16 23:23:37 UTC
User must have write permissions to review


Add mbox to social links

Hi,
When the social links section breaks to two lines an icon stay on first row

Some mbox should fix the behavior

Hi @mnlc, thanks, this LGTM (ideally I suppose we'd drop the trailing | on the first line, but it's an improvement for sure) - if you're still interested could you rebase to fix conflicts please, and then CI should run just so we can double check it looks right on the example.

Hi @OJFord, I was thinking could be time to merge this lol. I haven't done the improvement, instead updated to wrap the added items in the meantime. I made a test uncommenting some socials, seems good. thanks


Heavy torrents upload problem

I'm having issues while uploading huge blu-ray image torrents. It seems to newer upload. Using Transmmision Remote GUI everything is working correctly.

I can confirm this issue, im also seeing that Transmission remote gui is faster to add torrents.
I don't know when and why the issue occure.
Maybe pety3bi can add some kind of log when this happens. (only happed a few times here).

I can add any log, but i need to know what log will help to solve this issue. It's realy annoying to switch from this perfect GUI to others sometimes to add such torrents.

it'll probably be easier if you provide a huge torrent, though that might be illegal.

http://storage.tver.gq/gearshift/sources.torrent
this is an example torrent (opencv original sources, no seeds), gives the error while trying to add it. Transmission Remote GUI feels good and successfully add it.

The issue should now be fixed. It will be part of the next release, whenever that is.


Rename repository to reflect split chunk fetching functionality

Updated the repository name to more accurately depict its primary function as a split chunk fetcher. This better aligns the repository's name with its current features and expected usage.

Proceeding to merge all test passed.


[PROPOSAL] Make arbitrary JSON(de)serialization opt-in

Motivation
Arbitrary JSON deserialization induces issues to every tooling, that relies on some sort of static analyzing of the java code. This includes obfuscators like proguard/r8, AOT compiler like native-image or mobiVM and maybe also source-to-source compilers like GWT or TeaVM, so basically every backend except desktop. These tools can be in no way instructed to properly handle the JSON serialization, if there is no indication which class can be serialized and which not. It will end up in the users responsibility to handle this, especially for android, where defining a libGDX proguard rule to fix this would be rather simple, if a indication would be present.
The other problem is, that it is easy to serialize unintended objects. The JSONSerializer just reads all fields in the entire class hierachy, regardless of whether they are JRE internal or how deep the hierachy will go. Needing to mark classes as serializable explicitly would also solve that.
The transient modifier already can help with the issue, but it 1. can't prevent a class from being serialized and 2., very few people activly use that marker when developing librarys. I think a "Opt-In" the class and "Opt-Out" the fields with transient is better.
However, there is a case for arbitrary serialization e.g. if you have no control over the library source code or you just want to set up serialization quick. But I don't think it should be the default behaviour in a cross platform framework, if the default behaviour only works really reliable on desktop.
Proposed solution
There are two ways to add indication in my opinion.

An Annotation
A Interface

I'm not sure which I prefer, both have their up and downsides. An annotation would be easy and seamless to add and would also allow for easy annotation processor. However, the Json.Serializable interface already exists and I don't really like the idea of having both.
An interface would even moreso have the problem, that one already exists. This could be solved by making read and write to default methods, that delegate to the default json serialization handling, but that would require java 8 language features.
Backwards compatibility
For ensuring backwards compatibilty, the old arbitrary way should not be disabled. I would propose the following steps:

Implementing an indication (and marking the relevant GDX classes) and starting to give out warnings, if a JSon serialized object doesn't comply. This warning should be silencable.
Making enforcing the restriction the default behaviour. This should be disableable too, but disabling prints a warning "Arbitrary JSON serialization used, it may not work out of the box on all platforms" or something like that.
I don't think we actually ever need to remove it, it has it's purpose.

I'm happy to hear any thoughts on this!

This would be a real problem for third-party libraries with types that can currently be serialized by Json. A third-party library doesn't have to even know libGDX exists, much less depend on it, for libGDX to currently be able to serialize its types. There could be reflection issues on GWT or when ProGuard/R8 is involved, though. If we did this, we would probably have to spin off the Json-related code into a mutual dependency of libGDX and any other code that needs its annotations/interfaces... Another option might be to do what GWT does and look up a marker annotation by name only, which GWT does with @GwtIncompatible regardless of what its package is. That still requires modifying existing source, though. We also can't add these annotations or interfaces to JDK classes! That seems like a showstopper...

This would be a real problem for third-party libraries with types that can currently be serialized by Json.

I don't think it is to much of a problem, since users that need that can just opt-in on allowing all classes to be serializable.

If we did this, we would probably have to spin off the Json-related code into a mutual dependency of libGDX and any other code that needs its annotations/interfaces...

I also don't think this is needed, maybe I'm mistaken, but librarys that intend some of their classes to be libGDX JSon serializable already have a libGDX dependency, right?

We also can't add these annotations or interfaces to JDK classes!

What JDK class is currently libGDX JSon serializable and needs to be? I would assume very few due to them being not fully reflectible by default on newer java version.

That seems like a showstopper...

This is not about removing the current behaviour, just not making it the default.

I'm also not very comfortable coupling classes to libGDX Json framework even if I know it's already the case in some 3d classes that implement Json.Serializable.
I very much prefer the approach of registering custom (de)serializers to a Json library instead of coupled to the library classes that know how to (de)serialize themselves.
I personally don't like libGDX Json framework so, from my perspective, I'd rather keep it as an optional tool for developers but keep it's use to the minimum inside libGDX. Afaik it doesn't generate valid JSON because it tries to optimize file size to shrinking the output (at least by default, I don't know if it's configurable).
There are performant stable well architected feature-rich and open source JSON libraries that, imo, would be preferable to a custom limited solution but that may be a different discussion.
If I had to chose I'd say, let's list the affected classes. Let's say it's the libGDX Collection classes and the Skin Scene2D related ones. It may be the case that default serialization with a couple of transients do the job and, maybe just with a marker annotation we can easily keep control over which classes need to be added to R8 or similar tools.

What JDK class is currently libGDX JSon serializable and needs to be? I would assume very few due to them being not fully reflectible by default on newer java version.

Quite a lot are serializable. I tried some of the more common classes here, some of which you can find in libGDX: https://github.com/tommyettinger/jdkgdxds_interop/blob/main/src/test/java/com/github/tommyettinger/ds/interop/test/JdkJsonTest.java . Anything with an expected AssertionError fails. The one thing with an expected ClassCastException fails due to what seems like a problematic trait of libGDX Json, that is, it can't serialize nested generics very easily, or sometimes at all. In testDeep(), it fails because a [] Json array is read in as a libGDX Array by default, and nothing changes that behavior.

I also don't think this is needed, maybe I'm mistaken, but librarys that intend some of their classes to be libGDX JSon serializable already have a libGDX dependency, right?

No, not at all... a library like, say, JODA Time (I know, now it's part of Java) wouldn't ever depend on libGDX but could easily be something you want to serialize. Guava doesn't depend on libGDX, nor does Apache Commons (any sub-library). Several of my libraries choose not to depend on libGDX so they can be used in a server-side environment more easily, or to depend on an older compatible version so that existing projects that use an older version can drop in my library. I'd rather not have to update literally all of those cases that might be serialized to the current libGDX version, since the mechanisms to opt-in aren't there now.
Also, what do major popular libraries like Jackson do about this? I don't think all of them necessitate a dependency on their own JSON code, and if they do, it is probably a tiny dependency containing just the annotations needed, or at least tiny compared to all of libGDX.

Quite a lot are serializable. I tried some of the more common classes here, some of which you can find in libGDX: https://github.com/tommyettinger/jdkgdxds_interop/blob/main/src/test/java/com/github/tommyettinger/ds/interop/test/JdkJsonTest.java

All the classes in that file that are serializable are so, because they implement the Collection interface and JSon has special handling for that. Nothing would change for these classes with or without my proposal. The problem that it deserializes into a libGDX Array by default is also a clear downside.
https://github.com/libgdx/libgdx/blob/ddc75209f30c3f6aa23d8888604663b09784320a/gdx/src/com/badlogic/gdx/utils/Json.java#L543
Also as a note, testAtomicLong also fails on newer JDK's, but is not annotated with expected = AssertionError.class. I think that is also a point against using libGDX JSon serialization for JDK classes, if different java versions produce different results. Also, relying on internal JDK implementation details for serialization is a really bad idea in my opinion.

I'd rather not have to update literally all of those cases that might be serialized to the current libGDX version, since the mechanisms to opt-in aren't there now.

You don't have to, if a user wants to still use the current behaviour, they are free to do so. I'm just proposing not to make it the default behaviour, since it is in my opinion, not good. If you have a library that eagerly needs a class to be JSon serializable, but is not able to implement the interface, they can always just define a custom deserializer themselves (or just turn on the old behaviour).

Also, what do major popular libraries like Jackson do about this? I don't think all of them necessitate a dependency

No, they don't. However, jackson and similar target JVM mainly, while libGDX explicitly targets multi-platform. So in my opinion, libGDX JSon should try to be compatible to all platforms by default, which it can't with the current default. My proposal would solve this.

I very much prefer the approach on counting on a good default serialization logic and registering custom (de)serializers to the Json library when required instead of coupled to the library classes that know how to (de)serialize themselves.

I agree, it is the better approach in general. However, I would say it is not ideal in the context of libGDX because of all the platforms it targets and that they are not full JVM's.

If I had to chose I'd say, let's list the affected classes. Let's say it's the libGDX Collection classes and the Skin Scene2D related ones. It may be the case that default serialization with a couple of transients do the job and, maybe just with a marker annotation we can easily keep control over which classes need to be added to R8 or similar tools.

That would be already a big improvement in my opinion. The only problem with annotations is, that they are not inherited, so it wont catch subclassing. If there is a strong aversion to make the current behaviour non-default, we could also introduce a "strictMode" that is disabled by default? And everything inside libGDX uses the strict mode to ensure, that whatever libGDX does is fully detectable for r8 and similar. What would be the opinion on this?

I'm wondering how explicit serializable annotations/interfaces would help things like R8 and TeaVM handle their reflection restrictions. It seems like there will be holes in any case -- JSON as a format doesn't allow non-String keys in JSON Objects, and that's what libGDX translates a Map to. So just because something like ObjectMap is marked somehow as serializable, doesn't mean any given ObjectMap can actually be serialized, or serialized without reflection (since that depends on the values).

I'm wondering how explicit serializable annotations/interfaces would help things like R8 and TeaVM handle their reflection restrictions.

You can add rules like:
-keep public class ** extends Json.Serializable

-if public class ** extends Json.Serializable
-keep public class ** extends $1

-keepclassmembers public class ** extends Json.Serializable {*;}

So just because something like ObjectMap is marked somehow as serializable, doesn't mean any given ObjectMap can actually be serialized,

Yes, that is true. The same rules/restrictions would apply to the values of a ObjectMap.

That would be already a big improvement in my opinion. The only problem with annotations is, that they are not inherited, so it wont catch subclassing. If there is a strong aversion to make the current behaviour non-default, we could also introduce a "strictMode" that is disabled by default? And everything inside libGDX uses the strict mode to ensure, that whatever libGDX does is fully detectable for r8 and similar. What would be the opinion on this?

Tbh I don't know how a strict mode design pattern works and how hard it would be to implement, can you add some more info?
I understand the rules for Serializable can fix JSON related stuff but I still don't see the solution for @tommyettinger point about how this resolves R8 problems with reflection (for example by the use of ReflectionPool which R8 can't sort out without adding rules).

Tbh I don't know how a strict mode design pattern works and how hard it would be to implement, can you add some more info?

Basically what I imagine is, when JSon serializes a class, it will check whether it inherits from Json.Serializable (or has annotation), if not it fails in strict mode. I can build a showcase implementation of that, it not complex I think.

(for example by the use of ReflectionPool which R8 can't sort out without adding rules).

Yeah, it does not solve all R8 issues, just the ones related to JSON. Other R8 issues are out of scope for this proposal.
But if we are on the topic of ReflectionPool, there is at onehand already the Poolable interface, which can infer a lot of reflection usage. Also, I think if we get at somepoint java 8 language features, using a SupplierPool is very much preferable over a ReflectionPool, since it solves the reflection issue and looks as clean new SupplierPool<>(Actions::new);

Basically what I imagine is, when JSon serializes a class, it will check whether it inherits from Json.Serializable (or has annotation), if not it fails in strict mode. I can build a showcase implementation of that, it not complex I think.

Ok, get it, no need to.

Yeah, it does not solve all R8 issues, just the ones related to JSON. Other R8 issues are out of scope for this proposal.
But if we are on the topic of ReflectionPool, there is at onehand already the Poolable interface, which can infer a lot of reflection usage. Also, I think if we get at somepoint java 8 language features, using a SupplierPool is very much preferable over a ReflectionPool, since it solves the reflection issue and looks as clean new SupplierPool<>(Actions::new);

Ok. So, where we are getting is that in both cases (json and reflection) we would ideally need Java 8 language features (default methods for the interface and Supplier). Maybe we could start by that and discuss increasing libGDX language level to 8 (in a separate issue) which is something we'll need to do at some point anyway?

The Json class uses reflection to serialize most classes without annotation. If that isn't what you want, Json isn't the right class to use. Annotation isn't feasible as it would infect most/all classes. Just configure Proguard/whatever for your app's usage.
There is little usage of Json in libgdx: 3D particles, HttpRequestBuilder (optional), and scene2d.iu Skin (optional), TexturePacker (gdx-tools).

Annotation isn't feasible as it would infect most/all classes.

I don't see why, since as you point out later, There is little usage of Json in libgdx. Also, there are already a lot of classes that shouldn't/can't be json deserialized already.

Just configure Proguard/whatever for your app's usage.

My point is, that libGDX internals should in my opinion work out of the box on every official platform by default. And if people use the libGDX Json serializer, in my opinion it should work in the default configuration on all official platforms too. Thats why I would propose the "strict" mode, that ensures exactly that.

ProGuard isn't part of libGDX, though. They can make breaking changes (or, as Android recently did, R8 can make breaking changes) without the slightest hint to libGDX software, developers, or users. I've looked into this for my own libraries, and while R8 has a mechanism to include ProGuard configuration with a library as it requires it, last I checked, desktop ProGuard does not support this. If desktop ProGuard does get feature parity with R8, then we won't need the "Json Invasion" and can configure ProGuard and R8 via a META-INF file.
But, there is the fact that Json is part of the libGDX core library and not an extension... It wouldn't add any external dependencies to make Json aware of how to serialize other libGDX classes. This doesn't actually need to be done via interfaces or annotations; the way Json currently does things, it has special-case logic for various common types that match up well to JSON-format primitives. This special-case logic might be possible to extend for other classes (or interfaces), but that might also entail a performance penalty (I vaguely remember hearing that during my map/set overhaul PR). This isn't the same as what's being proposed, as far as I can tell -- having a strict mode on by default, that requires some form of code from libGDX (an annotation or interface) applied to a class to make it serializable, would break serialization for about half of my libraries unless the defaults are adjusted. I already write manual serializers for every class I can, but I register them in optional extra libraries with a Json object supplied by the library user. Without serialization involved yet, the classes don't need to know libGDX exists, which I think is a good strategy to avoid forcing any particular libGDX version as a dependency.

I don't see why, since as you point out later, There is little usage of Json in libgdx.

It's just unreasonable to annotate all classes Json could serialize by default. That would put JSON clutter in many classes. We don't want that inside libgdx and outside often it isn't possible (eg 3rd party libs).

Also, there are already a lot of classes that shouldn't/can't be json deserialized already.

There are many classes that can't be deserialized by Json by default, but all classes can be serialized by Json when configured to do so. Json#setSerializer keeps the JSON junk out of other classes and works with 3rd party libs.

libGDX internals should in my opinion work out of the box on every official platform by default.

It does.
Proguard and similar tools will break apps in all kinds of ways, not just Json reflection. Part of using those tools is to configure them properly. It takes a little more effort if you are using reflection, but it's possible. The difficulty of doing so should not cause JSON related junk to spill out of its class/package.
A reasonable improvement might be to include Proguard/whatever configuration for libgdx classes (eg scene2d.ui).

It wouldn't add any external dependencies to make Json aware of how to serialize other libGDX classes.

I think special cases in Json are fine for common classes (ObjectMap, etc). We could provide JsonSerializers for less common classes we think people will serialize.
For comparison, in Kryo (which is more powerful and better designed than Json), the only special cases are primitive types and String. There are default serializers that are registered by default, so any of those JDK classes can be used without special config. Other serializers are provided, but need to be registered explicitly to be used, and users write their own. Serializers that are unsafe or for 3rd party libs are kept in other repos. Like Json, configuring Proguard/etc requires some effort depending on how much reflection is used during serialization (which could be none).

that might also entail a performance penalty

JSON is usually the wrong choice if performance matters anyway.

I think special cases in Json are fine for common classes (ObjectMap, etc). We could provide JsonSerializers for less common classes we think people will serialize.

I think this is a great idea. It makes sure extra serialization code stays in one place, allows custom serializers to be used in place of the default ones if users want that, and helps ensure that classes are serializable without too much hassle.

I think special cases in Json are fine for common classes (ObjectMap, etc). We could provide JsonSerializers for less common classes we think people will serialize.

I think this is a great idea. It makes sure extra serialization code stays in one place, allows custom serializers to be used in place of the default ones if users want that, and helps ensure that classes are serializable without too much hassle.

This is exactly what I suggested here

I very much prefer the approach on counting on a good default serialization logic and registering custom (de)serializers to the >Json library when required instead of coupled to the library classes that know how to (de)serialize themselves.

but does libGDX Json framework allow for registering custom (de)serializers? JsonSerializer class doesn't seem to be part of libGDX.

I would like to clarify one thing:
I'm not against the use of custom deserializers. I totally agree it is a good approach to handle things and works very well for third party libs etc. What I'm talking about is, the current default behavior which does not use any custom deserializer logic but solely relies on reflection. The "strict" mode would only fail, if a class has neither a custom deserializer defined nor implements the "Serializable" interface. So correct me if I'm wrong, but I don't think that would be an issue then:

applied to a class to make it serializable, would break serialization for about half of my libraries unless the defaults are adjusted. I already write manual serializers for every class I can

Also, the strict mode is only meant to be one of two modes, the current mode would still exist.

but all classes can be serialized by Json when configured to do so. Json#setSerializer keeps the JSON junk out of other classes and works with 3rd party libs.

Yes, and I like it! I'm only arguing that you can deserialize a random class without any interface/annotation/serializer with reflection by default.

It does.
Proguard and similar tools will break apps in all kinds of ways, not just Json reflection. Part of using those tools is to configure them properly. It takes a little more effort if you are using reflection, but it's possible.

I think we have different definitions of "working out of the box" then. If I use libGDX feature X on desktop, I would expect it to also work e.g. on android without further configuration. That is not the case. From what I witnessed on discussions (only anecdotal evidence), thats what also some user expect. Some are saying that they use libGDX JSon, because they think it works better cross-platform, which it just doesn't.

A reasonable improvement might be to include Proguard/whatever configuration for libgdx classes (eg scene2d.ui).

Yes, I totally agree with that and my proposal was meant to be a step for that, to have good, robust rules.
Since there seems to be a bigger aversion, I would like to propose just a "strict" mode, that is disabled by default. The strict mode fails if a class gets serialized, if neither a custom deserializer is defined nor the class implements "Serializable". This way, by activating the strict mode, users are ensured that whatever they do with JSon, it will work on all platforms if it does on desktop. How does that sound?

I think it would be nice to have, it would especially let you have full control over accidental serialization of fields for example if you forget transient. This doesn't make it fool proof though. If it works on desktop you don't have a guarantee on other platforms due to code stripping and treeshaking.

If you're using Proguard or similar then you can expect your app not to work until you chase down all the problems.
I'm fine with a mechanism to make "unregistered" classes throw an error, disabled by default. I'm not interested in developing it, but if others want it I don't mind it being added.
FWIW, I never intended Json to be used for major serialization tasks, which are usually better done with binary. Json (and JsonBeans) is a simpler version of Kryo, with convenience being the goal. Kryo walks the object graph and applies serializers, but doesn't have special cases or force the use of reflection. Kryo requires classes to be registered (which is where a serializer is specified) by default. While there is a way to make registration optional, it's most common to know all the classes that will be serialized up front, allowing an ordinal to represent a type efficiently. That registration helps when it comes to Proguard time.


[Question] instance methods are accessible from template without using @this

Description:
Components methods are accessible from template without using @this reference.
Is this the exepected behaviour?
Versions affected:

edge
0.9.3

Platforms affected:

Chrome 61 on MacOS
Safari 11 on MacOS

Reproduction:
https://jsfiddle.net/w2zvmvwL/
Ractive.components.MyComp = Ractive.extend({
  template: `

My component

Instance methods are accessible from template also when not using @this.syntax

Without anything

myFunction (toString) -> {{myFunction}}

myFunction() -> {{myFunction()}}

Using @this

myFunction (toString) -><EMAIL_ADDRESS>
myFunction() -> {{@this.myFunction()}}

  `,
  data() {
    return {
      things: 'something',
    };
  },

  myFunction() {
    return 'my function output';
  },
});

const r = window.r = new Ractive({
  el: '#main',
  template: `	<h1>Hello!</h1>	<MyComp/>`,
  data: {}
});

That's expected behavior. Ractive includes instance members in the resolution pile.
To disable this, set resolveInstanceMembers to false.

Yep. Also note that this will change to be defaulted to false for 1.0, as it does more harm than help most of the time.

Sorry, I haven't see it in the documentation.
Thanks for the explanation!


HTTP 500 on explore/code search after repo delete (with enabled code indexer via elasticsearch)

Gitea Version
1.16.3
Git Version
<IP_ADDRESS>
Operating System
CentOS Linux 7 (Core)
How are you running Gitea?
Self-hosted instance in ProxMox
configuration:
APP_NAME = <ERASED>
RUN_USER = git
RUN_MODE = prod

[security]
INTERNAL_TOKEN     = <ERASED>
INSTALL_LOCK       = true
SECRET_KEY         = <ERASED>
PASSWORD_HASH_ALGO = pbkdf2
DISABLE_GIT_HOOKS  = false

[database]
DB_TYPE  = postgres
HOST     = <ERASED>
NAME     = <ERASED>
USER     = <ERASED>
PASSWD   = <ERASED>
SCHEMA   =
SSL_MODE = disable
CHARSET  = utf8
PATH     = /var/lib/gitea/data/gitea.db
LOG_SQL  = false

[repository]
ROOT = /var/lib/gitea/data/gitea-repositories

[server]
SSH_DOMAIN       = <ERASED>
DOMAIN           = <ERASED>
HTTP_PORT        = 3000
ROOT_URL         = https://<ERASED>/
DISABLE_SSH      = false
SSH_PORT         = 22
LFS_START_SERVER = true
LFS_CONTENT_PATH = /var/lib/gitea/data/lfs
LFS_JWT_SECRET   = <ERASED>
OFFLINE_MODE     = false

[mailer]
ENABLED = true
HOST    = <ERASED>
FROM    = <ERASED>
USER    =
PASSWD  =

[service]
REGISTER_EMAIL_CONFIRM            = false
ENABLE_NOTIFY_MAIL                = false
DISABLE_REGISTRATION              = false
ALLOW_ONLY_EXTERNAL_REGISTRATION  = false
ENABLE_CAPTCHA                    = false
REQUIRE_SIGNIN_VIEW               = true
DEFAULT_KEEP_EMAIL_PRIVATE        = false
DEFAULT_ALLOW_CREATE_ORGANIZATION = true
DEFAULT_ENABLE_TIMETRACKING       = true
NO_REPLY_ADDRESS                  = noreply.localhost

[picture]
DISABLE_GRAVATAR        = false
ENABLE_FEDERATED_AVATAR = true

[openid]
ENABLE_OPENID_SIGNIN = true
ENABLE_OPENID_SIGNUP = true

[session]
PROVIDER = file

[log]
MODE      = console
LEVEL     = info
ROOT_PATH = /var/lib/gitea/log
ROUTER    = console

[metrics]
ENABLED = true

[mirror]
MIN_INTERVAL = 1m

[indexer]
ISSUE_INDEXER_TYPE = elasticsearch
ISSUE_INDEXER_CONN_STR = http://<ERASED>:9200
ISSUE_INDEXER_NAME = gitea_issues
ISSUE_INDEXER_PATH = indexers/issues.bleve
REPO_INDEXER_ENABLED = true
REPO_INDEXER_TYPE = elasticsearch
REPO_INDEXER_CONN_STR = http://<ERASED>:9200
REPO_INDEXER_NAME = gitea_codes
REPO_INDEXER_PATH = indexers/repos.bleve
UPDATE_BUFFER_LEN = 20
MAX_FILE_SIZE = 1048576
REPO_INDEXER_INCLUDE =
REPO_INDEXER_EXCLUDE = resources/bin/**
STARTUP_TIMEOUT = 30s

Database
PostgreSQL
Can you reproduce the bug on the Gitea demo site?
No
Log Gist
No response
Description
Steps to reproduce:

(maybe can be skipped) Migrate repo with pulling enabled
(maybe can be skipped) Convert repo to regular
Force repo code indexing by pressins button "Add to Reindex Queue" (in repo settings), wait until it ends
Search from some code string in this repo via Explore/Code (type "match"). You should see your code in this repo
Delete repo via "Delete This Repository" button (in repo settings)
Repeat you search from step 4. You will receive HTTP 500 from https://.../explore/code?tab=&q=addSbtPlugin&t=match

Error from logs
Mar 14 12:37:07 ci-gitea gitea: #033[36m2022/03/14 12:37:07 #033[0mStarted #033[34mGET#033[0m #033[1m/explore/code?tab=&q=addSbtPlugin&t=match#033[0m for #033[1m<IP_ADDRESS>:55048#033[0m

Mar 14 12:37:08 ci-gitea gitea: #033[36m2022/03/14 12:37:08 #033[0m#033[32m...v7@v7.0.25/client.go:1500:#033[32mPerformRequest()#033[0m #033[1;32m[I]#033[0m #033[1mPOST#033[0m #033[1mhttp://<ERASED>:9200/gitea_codes/_search#033[0m [status:#033[1m200#033[0m, request:#033[1m0.842#033[0ms]

Mar 14 12:37:08 ci-gitea gitea: #033[36m2022/03/14 12:37:08 #033[0m#033[32m...s/context/context.go:208:#033[32mHTML()#033[0m #033[1;31m[E]#033[0m #033[1mRender failed#033[0m: #033[1mtemplate: explore/code:41:40: executing "explore/code" at <$repo.HTMLURL>: error calling HTMLURL: runtime error: invalid memory address or nil pointer dereference#033[0m

Mar 14 12:37:08 ci-gitea gitea: #033[36m2022/03/14 12:37:08 #033[0mCompleted #033[34mGET#033[0m #033[1m/explore/code?tab=&q=addSbtPlugin&t=match#033[0m #033[1;41m500#033[0m #033[1;41mInternal Server Error#033[0m in #033[33m875.460841ms#033[0m

If you need more information - please tell
Screenshots
No response

I submitted a fix. Additionally the Elasticsearch index should be cleaned, however without a fix in the explore/code code, a 500 response could stil happen because of eventual consistency / delays in index purging.


chore: release main

:robot: I have created a release beep boop
cli: 0.4.8
0.4.8 (2022-11-26)
Features

Audio support [sound:a.mp3]. (593b79b)
validate frontmatter. (593b79b)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/timgreen/Anki.md/releases/tag/cli/v0.4.8 :sunflower:


Able to add duplicate attributes for a class without error presented

no additional text

TODO

Catch the case where the attribute name is a duplicate.


[BUG] 基于 docker-compose 部署 All-in-One DeepFlow 时提示 镜像 deepflow-ce/deepflow-app:v6.5.3 不存在

Search before asking

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

DeepFlow Component
Server
What you expected to happen

How to reproduce
No response
DeepFlow version
No response
DeepFlow agent list
No response
Kubernetes CNI
No response
Operation-System/Kernel version
No response
Anything else
No response
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

当时应该是镜像没有同步上传导致的原因，后续已同步更新对应版本镜像

ali one 能把 agent  加进去吗


Segmentation fault - macos, uSockets built with WITH_OPENSSL

So when building with WITH_OPENSSL everything works fine when running a SSLApp and sending https requests, but it fails if I use App and make http requests.
Here is some output from the debugger, my guess is that it somehow still creates a SSLApp which is obviously wrong:
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x44)
    frame #0: 0x0000000100044b64 a.out`SSL_get_shutdown + 4
a.out`SSL_get_shutdown:
->  0x100044b64 <+4>: movl   0x44(%rdi), %eax
    0x100044b67 <+7>: popq   %rbp
    0x100044b68 <+8>: retq
    0x100044b69 <+9>: nopl   (%rax)
Target 0: (a.out) stopped.
(lldb) up
frame #1: 0x0000000100398fa8 a.out`us_socket_write + 72
a.out`us_socket_write:
->  0x100398fa8 <+72>: testb  $0x1, %al
    0x100398faa <+74>: jne    0x10039906a               ; <+266>
    0x100398fb0 <+80>: movq   0x10(%rbx), %rax
    0x100398fb4 <+84>: movq   (%rax), %rax
(lldb) up
frame #2: 0x000000010001faf7 a.out`uWS::AsyncSocket<true>::write(this=0x0000000100b04400, src="HTTP/1.1 ", length=9, optionally=false, nextLength=0) at AsyncSocket.h:289:31
   286 	                }
   287 	            } else {
   288 	                /* We are not corked */
-> 289 	                int written = us_socket_write(SSL, (us_socket_t *) this, src, length, nextLength != 0);
   290
   291 	                /* Did we fail? */
   292 	                if (written < length) {
(lldb) v
(uWS::AsyncSocket<true> *) this = 0x0000000100b04400
(const char *) src = 0x00000001003c286f "HTTP/1.1 "
(int) length = 9
(bool) optionally = false
(int) nextLength = 0
(uWS::LoopData *) loopData = 0x0000000100a06fd0
(uWS::AsyncSocketData<true> *) asyncSocketData = 0x0000000100b04440
(int) written = 167770225

NB: I used the latest released versions ( 20.14.0 for uWebSockets and 0.8.1 for uSockets ).

Do you use more than one thread?

You can't reinterpret a non-ssl socket as if it was ssl. This is clearly misuse

Yeah I wondered and first thought that came from the fact that uSockets was compiled with SSL on. But actually I had a hardcoded <true> hanging somewhere. Was hard to find but I got there thanks!

Yep. Np 👍


pylint giving an astroid error with Python 3.12 when run from VSCode Pylint extension

I've just updated a PC I'm developing a particular project on to Python 3.12.  I did a pip freeze to save my requirements, deleted the .venv directory.  I  created a new .venv using Python 3.12, activated it, and did a 'pip install -r requirements.txt'.  When I fired up VSCode to this workspace, I find that I'm getting a message of
c:\Users\olory\Projects\set_contest\src\set_contest\set_contest.py: Fatal error while checking 'c:\Users\olory\Projects\set_contest\src\set_contest\set_contest.py'. Please open an issue in our bug tracker so we address this. There is a pre-filled template that you can use in 'C:\Users\olory\AppData\Local\pylint\pylint\Cache\pylint-crash-2023-10-04-01-57-47.txt'.
in the Problems tab.   This does not, however appear to be merely a pylint error, as if I run pylint manually against this source from an activated command line, pylint runs fine.  I've restarted VSCode, uninstalled and reinstalled the Pylint extension, and I get the same result.
The referenced template is attached:
pylint-crash-2023-10-04-01-57-47.txt
This the dump of the Pylint output window:
2023-10-04 01:57:26.171 [info] Name: Pylint
2023-10-04 01:57:26.171 [info] Module: pylint
2023-10-04 01:57:26.171 [info] Python extension loading
2023-10-04 01:57:26.171 [info] Waiting for interpreter from python extension.
2023-10-04 01:57:26.171 [info] Python extension loaded
2023-10-04 01:57:26.171 [info] Server run command: c:\Users\olory\Projects\set_contest.venv\Scripts\python.exe c:\Users\olory.vscode\extensions\ms-python.pylint-2023.6.0\bundled\tool\lsp_server.py
2023-10-04 01:57:26.171 [info] Server: Start requested.
2023-10-04 01:57:31.286 [info] CWD Server: c:\Users\olory\Projects\set_contest
2023-10-04 01:57:31.286 [info] Settings used to run Server:
[
{
"cwd": "c:\Users\olory\Projects\set_contest",
"workspace": "file:///c%3A/Users/olory/Projects/set_contest",
"args": [],
"severity": {
"convention": "Information",
"error": "Error",
"fatal": "Error",
"refactor": "Hint",
"warning": "Warning",
"info": "Information"
},
"path": [],
"interpreter": [
"c:\Users\olory\Projects\set_contest\.venv\Scripts\python.exe"
],
"importStrategy": "useBundled",
"showNotifications": "off",
"extraPaths": []
}
]
2023-10-04 01:57:31.286 [info] Global settings:
{
"cwd": "C:\Program Files\Microsoft VS Code",
"workspace": "C:\Program Files\Microsoft VS Code",
"args": [],
"severity": {
"convention": "Information",
"error": "Error",
"fatal": "Error",
"refactor": "Hint",
"warning": "Warning",
"info": "Information"
},
"path": [],
"interpreter": [],
"importStrategy": "useBundled",
"showNotifications": "off",
"extraPaths": []
}
2023-10-04 01:57:31.286 [info] sys.path used to run Server:
c:\Users\olory\Projects\set_contest
c:\Users\olory.vscode\extensions\ms-python.pylint-2023.6.0\bundled\libs
c:\Users\olory.vscode\extensions\ms-python.pylint-2023.6.0\bundled\tool
C:\Users\olory\AppData\Local\Programs\Python\Python312\python312.zip
C:\Users\olory\AppData\Local\Programs\Python\Python312\DLLs
C:\Users\olory\AppData\Local\Programs\Python\Python312\Lib
C:\Users\olory\AppData\Local\Programs\Python\Python312
c:\Users\olory\Projects\set_contest.venv
c:\Users\olory\Projects\set_contest.venv\Lib\site-packages
2023-10-04 01:57:31.361 [info] c:\Users\olory\Projects\set_contest.venv\Scripts\python.exe -m pylint --version
2023-10-04 01:57:31.361 [info] CWD Linter: c:\Users\olory\Projects\set_contest
2023-10-04 01:57:44.830 [info]
pylint 2.17.4
astroid 2.15.5
Python 3.12.0 (tags/v3.12.0:0fb18b0, Oct  2 2023, 13:03:39) [MSC v.1935 64 bit (AMD64)]
2023-10-04 01:57:44.830 [info] Version info for linter running for C:\Users\olory\Projects\set_contest:
pylint 2.17.4
astroid 2.15.5
Python 3.12.0 (tags/v3.12.0:0fb18b0, Oct  2 2023, 13:03:39) [MSC v.1935 64 bit (AMD64)]
2023-10-04 01:57:44.831 [info] SUPPORTED pylint>=2.12.2
FOUND pylint==2.17.4
2023-10-04 01:57:44.847 [info] [Trace - 1:57:44 AM] Sending request 'textDocument/codeAction - (1)'.
2023-10-04 01:57:44.929 [info] [Trace - 1:57:44 AM] Received notification 'window/logMessage'.
2023-10-04 01:57:44.929 [info] c:\Users\olory\Projects\set_contest.venv\Scripts\python.exe -m pylint --reports=n --output-format=json --clear-cache-post-run=y --from-stdin c:\Users\olory\Projects\set_contest\src\set_contest\set_contest.py
2023-10-04 01:57:44.929 [info] [Trace - 1:57:44 AM] Received notification 'window/logMessage'.
2023-10-04 01:57:44.929 [info] CWD Linter: c:\Users\olory\Projects\set_contest
2023-10-04 01:57:47.673 [info] [Trace - 1:57:47 AM] Received notification 'window/logMessage'.
2023-10-04 01:57:47.673 [info] Exception on node <ImportFrom l.10 at 0x25ce4400440> in file 'c:\Users\olory\Projects\set_contest\src\set_contest\set_contest.py'
Traceback (most recent call last):
File "c:\Users\olory.vscode\extensions\ms-python.pylint-2023.6.0\bundled\libs\pylint\checkers\imports.py", line 858, in _get_imported_module
return importnode.do_import_module(modname)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\olory.vscode\extensions\ms-python.pylint-2023.6.0\bundled\libs\astroid\nodes_base_nodes.py", line 146, in do_import_module
return mymodule.import_module(
^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\olory.vscode\extensions\ms-python.pylint-2023.6.0\bundled\libs\astroid\nodes\scoped_nodes\scoped_nodes.py", line 530, in import_module
return AstroidManager().ast_from_module_name(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\olory.vscode\extensions\ms-python.pylint-2023.6.0\bundled\libs\astroid\manager.py", line 232, in ast_from_module_name
return self.ast_from_file(found_spec.location, modname, fallback=False)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\olory.vscode\extensions\ms-python.pylint-2023.6.0\bundled\libs\astroid\manager.py", line 124, in ast_from_file
return AstroidBuilder(self).file_build(filepath, modname)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\olory.vscode\extensions\ms-python.pylint-2023.6.0\bundled\libs\astroid\builder.py", line 144, in file_build
module, builder = self._data_build(data, modname, path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\olory.vscode\extensions\ms-python.pylint-2023.6.0\bundled\libs\astroid\builder.py", line 204, in _data_build
module = builder.visit_module(node, modname, node_file, package)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\olory.vscode\extensions\ms-python.pylint-2023.6.0\bundled\libs\astroid\rebuilder.py", line 254, in visit_module
[self.visit(child, newnode) for child in node.body],
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\olory.vscode\extensions\ms-python.pylint-2023.6.0\bundled\libs\astroid\rebuilder.py", line 609, in visit
visit_method = getattr(self, visit_name)
^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'TreeRebuilder' object has no attribute 'visit_typealias'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "c:\Users\olory.vscode\extensions\ms-python.pylint-2023.6.0\bundled\libs\pylint\utils\ast_walker.py", line 91, in walk
callback(astroid)
File "c:\Users\olory.vscode\extensions\ms-python.pylint-2023.6.0\bundled\libs\pylint\checkers\imports.py", line 549, in visit_importfrom
imported_module = self._get_imported_module(node, basename)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\olory.vscode\extensions\ms-python.pylint-2023.6.0\bundled\libs\pylint\checkers\imports.py", line 883, in _get_imported_module
raise astroid.AstroidError from e
astroid.exceptions.AstroidError
2023-10-04 01:57:47.674 [info] [Trace - 1:57:47 AM] Received notification 'window/logMessage'.
2023-10-04 01:57:47.674 [info] file:///c%3A/Users/olory/Projects/set_contest/src/set_contest/set_contest.py :
[
{
"type": "fatal",
"module": "set_contest.set_contest",
"obj": "",
"line": 1,
"column": 0,
"endLine": null,
"endColumn": null,
"path": "src\set_contest\set_contest.py",
"symbol": "astroid-error",
"message": "c:\Users\olory\Projects\set_contest\src\set_contest\set_contest.py: Fatal error while checking 'c:\Users\olory\Projects\set_contest\src\set_contest\set_contest.py'. Please open an issue in our bug tracker so we address this. There is a pre-filled template that you can use in 'C:\Users\olory\AppData\Local\pylint\pylint\Cache\pylint-crash-2023-10-04-01-57-47.txt'.",
"message-id": "F0002"
}
]

The bundled pylint does not support 3.12. You can either set the “pylint.importStrategy” to ‘fromEnvironment’ or set “pylint.path” to point to the pylint binary in your env,

OK, setting pylint.importStrategy to fromEnvironment worked.
I'll note that the note appearing at the top of the extension Detail tab: "The bundled pylint is only used if there is no installed version of pylint found in the selected python environment." seems to imply that fromEnvironment is effectively the default.  Is it possible that that was the default (possibly before pylint.importStrategy was a setting?) and the note at the top wasn't updated when that changed?
Is it likely that before long the bundled pylint will be updated to something 3.12-compatible?

The text needs to be updated.