feat: add newish types

This adds order_hash and maker. Order_hash is in particular useful as it allows correlating of events much like the transaction hash, in principle this should allow the recreation of opensea's order-book using this stream.
this commit fixes #4
Please pull and give it a try I only did some limited testing.
Another note: I also noticed their docs weren't complete, ie bid was missing order_hash in the docs but present in the steam. I pinged opensea about it but I'm not sure when they'll update. Should probably add some sort of job to pull and build latest schema so we know when to update.

Also, please squash all your fixup commits into one commit (force push is ok here).

lmk if you have other standards or tests you run.
I again reached out to opensea again and mentioned the inconsistencies as well as if they would update the docs. They pinged a couple more folks on the thread I'll let you know if they get back.

It all looks good! I'm just going to double check on our own end whether item_received_bid does indeed have a order_hash` field.

I've moved this PR from master to v0.4 because I just noticed that a new event is being served by OS as well - the collection_offer.


MultiProgress: should prune leading progress bars that have become DoneVisible or DoneHidden

Consider this small example program:
use std::thread;
use std::time::Duration;

use indicatif::{MultiProgress, ProgressBar, ProgressFinish};

fn main() {
    let m = MultiProgress::new();
    let height = console::Term::stdout().size().0;

    for i in 0..(height + 1) {
        let p1 = m.add(
            ProgressBar::new_spinner()
                .with_message(format!("p{}", i))
                .with_finish(ProgressFinish::AndLeave),
        );
        p1.enable_steady_tick(Duration::from_millis(50));
        thread::sleep(Duration::from_millis(200));
    }
}

It creates one more spinner that there are lines in the terminal. Here is a video of it running:
https://user-images.githubusercontent.com/40474653/166507072-efdbaf25-82e5-4f25-91ac-e6ab51db2314.mp4
Since we never call MultiProgress::remove on ProgressBars that are dropped/finished (see #419), bars are always redrawn even when they don't need to be. When the number of bars (n) becomes greater than terminal lines (m), on each draw MultiProgress will clear the last m lines but write n lines, leaving m - n lines in the scrollback history.
I propose the following algorithm. On each MultiProgress:draw, iterate over the bars in order (according to MultiState::ordering) and take_while(|bar| bar.is_finished()). This set of leading progress bars is then pruned by calling MultiProgress:remove on each one. This ensures we are not re-drawing bars that don't need to be redrawn and that we are some reclaiming memory.
The wrinkle is that MultiState cannot currently get at the ProgressState to check is_finished(), so we will need to restructure some code.

This sounds reasonable. I don't have a deep understanding of MultiProgress paged in right now and the video doesn't want to play for me ("Video can't be played because the file is corrupt" -- Firefox on macOS), but I'd be happy to review a PR for this.


Update heatmaps

I've updated the Heatmaps pull request #240 to work with the current version of react-native-maps.
@christopherdro You requested the merge conflicts be resolved in the old pull request, would you care to review these changes?

still  doesn't work for me
what i did
npm uninstall react-native-maps --save
npm install https://github.com/airbnb/react-native-maps#pull/1549/head --save

on MapScreen.js
<MapView.Heatmap points={this.state.markers} />
and the error

Warning: React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in.

Check your code at MapHeatmap.js:42.

Here the render Fucntion
  render() {
    const AIRMapHeatmap = this.getAirComponent();    //return   undefined
    return <AIRMapHeatmap points={this.getSanitizedPoints()} />;
  }

@mickadoua Hm, this pull request covers Apple Maps on iOS and Google Maps on Android. You're using iOS Google Maps?
Also just to be sure, is AIRGooglzMapHeatMap a typo? AIRGoogleMapHeatMap would be autogenerated I'd think as AIRGooglz doesn't appear in the code anywhere from what I can see.

Sorry for AIRGooglzMapHeatMap
Its AIRGoogleMapHeatMap or course
Yes i use Google map on Ios
I will try with Apple plan

thanks for your answer,
so on IOS without Google Maps,

Warning: Native component for "AIRMapHeatmap" does not exist

on android,
here is my code
this.state = {
    markers: [{
                id: 1,
                latitude: 48.825898,
                longitude: 2.259494,
                weight: 10
            }
...
}
<MapView
   //provider={PROVIDER_GOOGLE}
   region={this.state.region}
>
      <MapView.Heatmap points={this.state.markers} />
</MapView>

Do you have a working project  ?

Thank you for putting this together! I look forward to seeing other developers give this a shot and report back if it worked for them.
Can you change the prefix of DTM to AirMap or something similiar to match the rest of the code base?

here some new information with  remote debugger
TEST 1
Map View
<MapView
   //provider={PROVIDER_GOOGLE}
   region={this.state.region}
>
      <MapView.Heatmap points={this.state.markers} />
</MapView>

debug result  file : https://github.com/airbnb/react-native-maps/blob/2af950fb1669de3649d81b7881df12c913e3f9cb/lib/components/decorateMapComponent.js#L46-L70

TEST 2
Map View
<MapView
   provider={PROVIDER_GOOGLE}
   region={this.state.region}
>
      <MapView.Heatmap points={this.state.markers} />
</MapView>

debug result  file : https://github.com/airbnb/react-native-maps/blob/2af950fb1669de3649d81b7881df12c913e3f9cb/lib/components/decorateMapComponent.js#L46-L70

in the both case, HeatMap doesn't work

@mickadoua I've put an example project using this pull request here: https://github.com/zolrath/maptest
@christopherdro The final component is named AIRMapsHeatmap but DTMHeatmaps is a third party library we're pulling in for this. Would AIRMapsDTMHeatmapRenderer etc be appropriate to keep the original authors prefix while ensuring we don't get clashes with other libraries by appending AIRMaps? Let us know what you'd like and we'll proceed!

@christopherdro DTM naming has been updated to AIRMapDTM

@mickadoua  @christopherdro Did the example project work for you to show the functionality of the Heatmap? Would love to see this feature merged in!

I second this with an orange thumb or two.

By the way, there is brand new google-maps-ios-utils support library that implements heatmaps over google maps as well so I suggest adding support for google maps heatmaps in iOS also.
I did my own version of the heatmap support without first looking at the pull requests so I missed this one and based my work on that one instead.
I would add at least opacity and radius parameters to the heatmap as they are trivial, but google maps also supports custom gradients that I'd like to have support also.

@ploluh If you would like to merge our efforts I'd certainly be interested.  I think the important thing here is for the community to finally have Heatmap support in react-native-maps.

@plouh If you would like to merge our efforts I'd certainly be interested.  I think the important thing here is for the community to finally have Heatmap support in react-native-maps.

+1 interested in heatmap support for google maps

Hey, any progress on this? What is needed to get this merged?

Has any further progress been made on this?

Any update on this? Would be great if this feature is merged.

Most recent and promising activity on this topic seems to be in PR #2241

Please try https://github.com/react-native-community/react-native-maps/pull/2960

Closing for https://github.com/react-native-community/react-native-maps/pull/2960


Please add FreeBASIC

Very capable BASIC dialect: https://github.com/freebasic/fbc

Added. Thanks!


Adding operations as described in G31,

See Issue G31 for description also
Removed provided scope from accumulo-core import in the accumulo-store
so the accumulo-store can be imported properly for use in client code.

Any chance you could write some unit/integration tests for the new operations and/or their handlers?


⚠ Bofrost.at has degraded performance

In 526ff5b, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1134 ms

Resolved: Bofrost.at performance has improved in 6f6454d after 6 minutes.


On mobile (Android), cannot open a note from the Board view

What happened?
The note is not opened, got black (presumably webview) screen instead:

What did you expect to happen?
The note should be opened. Just like when clicking on it from the Table view (which works fine).
How can we reproduce it (as minimally and precisely as possible)?

have a project with notes
take an Android phone
open Board view
click on any note title (the underlined href)

Anything else we need to know?
I'm not a JS programmer, but wanted a quick fix for myself. So by directly editing compiled main.js, found the following solution:
...
+// main.js, line 37503 as of 1.17.1 release
function instance21($$self, $$props, $$invalidate) {
+  let $app; // copied from event handler used in the Table view
+  component_subscribe($$self, app2, ($$value) => $$invalidate(6, $app = $$value)); // copied from event handler used in the Table view
  let { $$slots: slots = {}, $$scope } = $$props;
  let { linkText } = $$props;
  let { sourcePath } = $$props;
  let { tooltip = "" } = $$props;
  let { resolved } = $$props;
  const dispatch2 = createEventDispatcher();
  let aria = {};
  if (tooltip) {
    aria = {
      "aria-label": tooltip,
      "aria-label-position": "top"
    };
  }
-  const click_handler2 = (event) => {
-    event.stopPropagation();
-    dispatch2("open", {
-      linkText,
-      sourcePath,
-      newLeaf: event.ctrlKey || event.metaKey
-    });
-  };
+const targetEl = event.target;
+    const closestAnchor = targetEl.tagName === "A" ? targetEl : targetEl.closest("a");
+    if (!closestAnchor) {
+      return;
+    }
+    if (closestAnchor.hasClass("internal-link")) {
+      event.preventDefault();
+      const href = closestAnchor.getAttr("href");
+      const newLeaf = event.button === 1 || event.ctrlKey || event.metaKey;
+      if (href) {
+        $app.workspace.openLinkText(href, sourcePath, newLeaf);
+      }
+    }
...

Plugin version
1.17.1
Obsidian version
1.4.16 (114)
OS
Other

I'm running in the same issue. Commenting to track any progress..

Bump. Obsidian 1.5.12 (134). Projects 1.17.3. Error page when clickig note on board, calendar views. But table view is correct


Fix issue #505

This PR fix #505.

I think still exceptions are caught in codeworld-api only.
Changes are made but I'm not getting where is this going wrong. Messages are not getting sanitized.

Thanks!


fixes #1475 the wrong hyperlinks

// Describe your PR here; eg. Fixes #issueNo
Fixes #1475 The hyperlinks of BodyInserterContext and CachedBodyOutputMessage are wrong.
Make sure that:

[x] You have read the contribution guidelines.
[x] You submit test cases (unit or integration tests) that back your changes.
[x] Your local test passed mvn clean install -Dmaven.javadoc.skip=true.

Codecov Report

Merging #1476 (af56e8a) into master (93f9a02) will decrease coverage by 0.71%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master    #1476      +/-   ##
============================================
- Coverage     64.07%   63.35%   -0.72%
+ Complexity     2046     2037       -9
============================================
  Files           407      407
  Lines          8804     8804
  Branches        881      881
============================================
- Hits           5641     5578      -63
- Misses         2742     2809      +67
+ Partials        421      417       -4

Impacted Files
Coverage Δ
Complexity Δ

...shenyu/web/filter/support/BodyInserterContext.java
100.00% <ø> (ø)
4.00 <0.00> (ø)

...yu/web/filter/support/CachedBodyOutputMessage.java
64.28% <ø> (ø)
4.00 <0.00> (ø)

...enyu/client/tars/TarsServiceBeanPostProcessor.java
23.17% <0.00%> (-59.76%)
5.00% <0.00%> (-9.00%)

...che/shenyu/sync/data/http/HttpSyncDataService.java
63.10% <0.00%> (-11.66%)
12.00% <0.00%> (ø%)

...henyu/plugin/httpclient/NettyHttpClientPlugin.java
57.14% <0.00%> (-2.05%)
10.00% <0.00%> (ø%)

...elimiter/handler/RateLimiterPluginDataHandler.java
69.23% <0.00%> (-1.54%)
14.00% <0.00%> (ø%)

Continue to review full report at Codecov.

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


Add a whitespace ?

Is it possible to add a whitespace after pressing enter ?

No, currently not.


Python3 ModuleNotFoundError: No module named 'rumps'

I'm using Python3 and installed rumps via pip3 but I get the no module named 'rumps' error.
Someone has an idea?

Hmm check /usr/local/lib/python3.6/site-packages and with ls -tr would check latest package if rumps is not there something went wrong with installation and would try use pip3 with -v (would recommend anyway). If package is there then I don't know why you can't import it.
Also I would try use python3 -m pip install rumps maybe that would install rumps for python3.

@Neo93 if you're still having this issue, can you provide the output of pip3 freeze to this thread?

Hopefully this got resolved but it doesn't seem like a rumps issue.


records: add jobs

Added jobs pid_type, record_Class, item and search endpoints

INSPIR-2145

@monaawi about the commit message, should have a bit more details about the minter, REST endpoints etc


apple pay integration

i was able to integrate apple pay pay fort inside this plugin ,
plz check the code and it will be great if you can make an update for the plugin to support officialy payfort apple pay
import PassKit
if PKPaymentAuthorizationViewController.canMakePayments(usingNetworks: [.amex, .masterCard, .visa]) {
let request = PKPaymentRequest.init()
let payment = [PKPaymentSummaryItem(label: "Grand Total", amount: NSDecimalNumber(string:"20"))]
request.paymentSummaryItems = payment
request.countryCode = "US"
request.currencyCode = "USD"
        //if let data = returnOrderDescription() {
         //   request.applicationData = data
      //  }
        request.supportedNetworks = [.amex, .masterCard, .visa, .discover]
        request.merchantIdentifier = "merchant.com.domain"
        request.merchantCapabilities = [.capability3DS ,.capabilityCredit , .capabilityDebit]

        let paymentPage = PKPaymentAuthorizationViewController(paymentRequest: request)
       paymentPage?.delegate = self
        if let paymentPage = paymentPage {
            controller!.present(paymentPage, animated: true, completion: nil)
        }
    }

public func paymentAuthorizationViewControllerDidFinish(_ controller: PKPaymentAuthorizationViewController) {
    controller.dismiss(animated: true, completion: nil)
}

public func paymentAuthorizationViewController(_ controller: PKPaymentAuthorizationViewController, didAuthorizePayment payment: PKPayment, handler completion: @escaping (PKPaymentAuthorizationResult) -> Void) {

    if (payment.token.paymentData.count != 0) {
        // Call payfort
        let request: NSMutableDictionary = .init()

        self.payFort!.callPayFort(withRequest: request as! [String : String] ,
                            currentViewController: (UIApplication.shared.keyWindow?.rootViewController)!,
                            success: { (requestDic, responeDic) in
                                print("success")
            completion(PKPaymentAuthorizationResult(status: .success, errors: nil))
                               // result(responeDic)
        },
                            canceled: { (requestDic, responeDic) in
                            print("cancelled")

            completion(PKPaymentAuthorizationResult(status: .failure, errors: nil))
                               // result(responeDic)
        },
                            faild: { (requestDic, responeDic, message) in
                               print("failed "+message)

                              //  result(message)
            completion(PKPaymentAuthorizationResult(status: .failure, errors: nil))
        })
    }else {
        completion(PKPaymentAuthorizationResult(status: .success, errors: nil))
       // completion(PKPaymentAuthorizationResult(status: .failure, errors: nil))
    }
}

Hello @syrakozz
OK, we Will try to add it in-shaa-allah.
Thanks

Hello
@ItachiUchiha0
apple pay is added or not?

@syrakozz  can you give me  steps for  apple pay config


GridField support for versioned records

In SS4, we've created the ChangeSet API (with the "campaigns" module) for the specific purpose of giving authors more control on the publication of content. Which relies on applying Versioned to DataObjects in your project code.
At the moment, we don't have any support in core to actually manage those versioned DataObjects efficiently. While this can be added through third party modules, it's not really a long-term solution if we're serious about making all types of content managed in SilverStripe "publishable".
Since we're likely going to create a React/JSON-powered GridField in the 4.x release cycle, I'm a bit cautious expanding the GridField API surface in core significantly. So I'm wondering if we should improve the existing versioneddataobjects module instead of pulling this into core, and focus on better core extension points for now.
Potential features:

Publish/unpublish buttons on detail form
Cascading publish by "owner" (e.g. a page record with has_many relationships)
Publish draft/publish/modified status indication on GridField table view
Publish draft/publish/modified status indication on ModelAdmin search results
Revert to an earlier version
List record versions with their status
View a readonly version of the record
Compare two versions
Preview draft edits if contained in a displayable template
Publishing of ordering changes (or auto-publish)
Choice of records to export (published, non-published)
Inclusion of draft records in ModelAdmin search
Mark "owner" record as modified if it contains unpublished dependencies (SS4 only?)

Existing modules:

https://github.com/heyday/silverstripe-versioneddataobjects: The most complete solution, four years of active dev with 15 contributors. 31k packagist installs, making it the 63rd most downloaded module on installs per day and the 53rds most downloaded module on overall installs. No unit tests.
https://github.com/bluehousegroup/silverstripe-data-object-version-viewer: Extends versioneddataobjects module, adds a "history" button in GridField and ModelAdmin
https://github.com/heyday/silverstripe-dataobjectpreview: Previews dataobjects above the edit form through a custom template (not in the context of a potential "parent" record like a page)
https://github.com/micschk/silverstripe-gridfieldsitetreebuttons: Focused on SiteTree
https://github.com/icecaster/silverstripe-versioned-gridfield: Only provides detail form buttons
https://github.com/arillo/silverstripe-gridfield-is-published: Styles rows with different background colours
https://github.com/heyday/silverstripe-gridfieldversionedorderablerows

Potential core improvements:

Upgrade versioneddataobjects to work with SS4
Add GridField->extend('updateConfig', $config, $dataList) so that third party modules can conditionally add or replace components without a developer needing to change every instance of GridField. Modules could choose to replace GridFieldDetailForm with a specialised versioned one if the managed $dataList has the Versioned extension.
Refactor CMSPageHistoryController into a reuseable UI component (React-based?) which can handle all versioned DataObjects, not just SiteTree records (and replace data-object-version-viewer)
Create unified developer docs on how to handle versioned records (pointing to third party modules)
Add ModelAdmin extension points so that VersionedModelAdmin extends ModelAdmin becomes unnecessary (a ModelAdmin should auto-detect if versioned records are managed, and set the correct GridField configuration)
Allow conditional addition of default components to GridFields
Extend the CMSPreviewable PHP class interface in core to support the silverstripe-dataobjectpreview use case

@stecman @bigSiebs @adrexia @andrewvt @micschk @lukasfrey @jebates @tylerkidd @stevie-mayhew @bendubuisson You have all been involved in GridField/Versioned-related modules - I'd like to get your feedback on what you see as the most useful actions for SilverStripe leading up to the 4.x release. We've made the Versioned system more solid through ChangeSets ("campaigns"),  but versioning your DataObjects is still opt-in for 4.x. Assuming that authors generally prefer the draft/publish flow to extend to all managed objects, how can we make it easier for devs to opt-in to this model?

I'm not sure what the possible scope of changes is at this point, but for what it's worth, the VersionedDataObject extension in heyday/silverstripe-versioned-dataobjects (originally written by @camspiers) only exists to make the Versioned extension from the framework useable, since it's not out of the box. It seems like Versioned was written very specifically to provide versioning for SiteTree, rather than a generic versioning solution. I haven't dug through all of the SS4 code, but it looks like this hasn't really changed.
What I'd really like to see is the framework provide the glue that VersionedDataObject does currently; where you can add the extension to a DataObject and it just works. Basic out-of-the-box UI support for the versioning provided by the frame work is great, but Versioned probably needs to be easier to drop in (and well advertised) for the UI side of it to really be useful.

@ingo have you seen https://github.com/silverstripe/silverstripe-versioned/blob/master/src/VersionedGridFieldItemRequest.php this was built based on the versioned data objects module, as well as some inspiration from @unclecheese's better buttons.

Publish/unpublish buttons on detail form
Cascading publish by "owner" (e.g. a page record with has_many relationships)
Mark "owner" record as modified if it contains unpublished dependencies (SS4 only?)

Potentially covered by these, but nested versioning is a bit of a nightmare UX-wise in the CMS. It might be worth providing an option to slave versioning in a way that's invisible to the user.
In the past I've replaced the publish/save draft actions in related versioned records with a "save" action that saves as draft. When the parent/owner is published, all of these related records are implicitly published, and as far as the CMS user is aware, it's all one thing - avoiding the "pages are versions but these things inside are published immediately" conversation.

I agree with @stecman here. The main work which I've done involving versioning has been publish chains for related objects and implementing custom actions for gridfields like the ones that @tractorcow linked above.
We've also attempted to have Versioned parents having versioned children objects, and then to be able to "publish" the children which allows the parent to be informed of that change while allowing the parent to "publish" all of its children on a change. It has been quite complicated in some instances to achieve this, which is a problem I believe campaigns will solve for us.

Our module https://github.com/bluehousegroup/silverstripe-data-object-version-viewer has https://github.com/heyday/silverstripe-versioneddataobjects as a dependency for exactly the reason @stecman mentions above (versioned dataobjects doesn't work out of the box without it).  Before we discovered the silverstripe-versioneddataobjects module we were neck deep in handling stages correctly ourselves which was a handful and produced spooky behavior left as is.  I strongly recommend the functionality in silverstripe-versioneddataobjects be put right in the framework so that when versioning is turned on it works reasonably out of the box.

We've found that while versioning is required from a tech point of view for content blocks and similar, most clients don't actually think about sub items versions at all, so similar to @stevie-mayhew above, we've created nested publishing flows and remove versioning UI from subobjects as it's just too complex for a client to get their head around.

SS4 versioning Data extension looks a lot better then v3 and the changes seem to point to versioned data objects module surplus to requirements thanks to that work.

@pitchandtone without any special GridFields, the default behaviour in the SS4 CMS is that stage content is shown, and that as long as you set up $owns metadata, clicking publish on the page will also publish all subordinate versioned dataobjects. If I understand your user needs correctly, this should give you what you want?
If you add the page to a campaign, then all of the subordinate dataobjects that are due to be published will be listed out in the campaign, to give more detail.

@chillu it looks like the only thing in heyday/versioneddataobjects missing from silverstripe/versioned is the VersionedModelAdmin, which seems like a bit of an orphan.

@sminnee yeah that sounds good. We do have a couple of clients that require sub-object publishing, but that's the exception to the rule.

Publish/unpublish buttons on detail form
Cascading publish by "owner" (e.g. a page record with has_many relationships)
Inclusion of draft records in ModelAdmin search

I've confirmed that the following is already in place for SS4

Publish draft/publish/modified status indication on GridField table view
Publish draft/publish/modified status indication on ModelAdmin search results

Created https://github.com/silverstripe/silverstripe-versioned/issues/22 for this.
Which other items from my list in the ticket description are important? Any crucial bits missing from SS4?

we've created nested publishing flows and remove versioning UI from subobjects as it's just too complex for a client to get their head around. [...] We do have a couple of clients that require sub-object publishing, but that's the exception to the rule.

How did you deal with this in terms of unpublishing sub-objects? While cascading publish is pretty straightforward, I could see cases where an author wants to move a sub-object back to draft (take it off the published page) without unpublishing the page itself. So in this case, you wouldn't want a "publish" button on the sub-object, but still need an "unpublish" button. Or do you just use "delete/archive"? Related issue: https://github.com/silverstripe/silverstripe-versioned/issues/21

@chillu the issue there is often that you will need to "remove" the object back to a draft version, and often then have publish the parent object so that this cascades through - especially if you have some form of caching involved.
I'm not sure of the best way to provide an "out of box" functionality for this, as its more configuration than convention in that case.

How did you deal with this in terms of unpublishing sub-objects? While cascading publish is pretty straightforward, I could see cases where an author wants to move a sub-object back to draft (take it off the published page) without unpublishing the page itself.

I wouldn't take it as self-evident that users will need this, or at least not in all cases.
For some applications, sure, in which case you could have an option to provide publication controls on every atomic record. But I wouldn't assume that every piece of nested data needs these.
For other cases, it would probably be overkill. In these cases I would expect that deleting the record and then publishing the parent page would be a reasonably natural way of handling this.
By way of analogy, you wouldn't want separate publication controls on the Content and Title fields of a page, and some nested data types are going to be as lightweight as those in the user's mental model.

I think that the fields on a userforms are an example of this.
Content blocks could be argued either way and depends on context.

So if we were to have per-sub-record controls for publish/unpublish, I would make it an optional add-on. This might require better extension points in the GridFieldDetailForm (which would also allow for a refactor of betterbuttons)

One of the assumptions we have struggled with in v3 (unsure if this has been split more in v4 yet) is the assumption that publishing and unpublishing permissions are the same.
While it's an OK default, it should be configurable as in there should be two different functions canUnpublish and canPublish with extends calls so that you can handle this discreetly. For example, workflow module disables publishing when in place, which also means people can't unpublish things without hacking around stuff.
Agree with both @chillu and @sminnee re unpublishing items, most of the time we've seen that people still think about the page and are fine with delete object, re-publish page, but there are some clients who are saavy enough to need unpublishing per sub object, however as @stevie-mayhew points out, it opens up the question of what else is affected when this happens.
I think it's safe enough to have delete object, unpublish page as the default, but I'd be keen to see what comes back from @chillu's user testing on that front.

OK so related to this, I've been playing with $owns tonight, so far it seems like the recursive publish works well. So I was about to delete some extensions that we had added to elemental to control unpublishing and duplication, as I assumed $owns would be used recursively in both of those methods but that doesn't seem to be the case.
Is this by design (shall I leave my extensions in but try use $owns) or an oversight?
Next question is if $owns is used by duplicate, should the variable be moved to DataObject instead rather than Versioned and then utilised by Versioned?

And on delete

Hrm, these sound like oversights although in the case of many-many and has-one "owned" data it's not clear what the logic should be. Can you raise a ticket?

So if we were to have per-sub-record controls for publish/unpublish, I would make it an optional add-on. This might require better extension points in the GridFieldDetailForm

That's what https://github.com/silverstripe/silverstripe-versioned/issues/21 is about. Can we determine "sub-records" though? It's context specific. You might want to auto-publish a "staff member" when associated to a page, but also provide a separate "staff members" ModelAdmin where they can be individually published. At the moment Versioned->findOwners() will only determine owners for the current record, not for the type of record. And GridFieldDetailForm doesn't have a reference to the parent object to check if it owns the currently edited record. We could opt-in to individual publish in ModelAdmin, but leave it disabled in GridField's default config?

Hrm, these sound like oversights although in the case of many-many and has-one "owned" data it's not clear what the logic should be. Can you raise a ticket?

I've created https://github.com/silverstripe/silverstripe-versioned/issues/23

Also, I think a lot of the discussions around ownership are repeats from earlier discussions lead by Hamish/Damian during the RFC stage: I'm just getting a strong coffee and re-reading that RFC: https://github.com/silverstripe/silverstripe-framework/issues/4932

You might want to auto-publish a "staff member" when associated to a page, but also provide a separate "staff members" ModelAdmin where they can be individually published.

Page $owns staff member.
Page GridField doesn't have PublicationControls component
ModelAdmin GridField has PublicationControls component

We could opt-in to individual publish in ModelAdmin, but leave it disabled in GridField's default config?

That makes sense to me. This could be an optional VersionedModelAdmin base class or extension that you apply to the applicable model admins? I don't think it needs to automagically appear if there's a simple way to enable it.

That makes sense to me. This could be an optional VersionedModelAdmin base class or extension that you apply to the applicable model admins? I don't think it needs to automagically appear if there's a simple way to enable it.

I've updated https://github.com/silverstripe/silverstripe-versioned/issues/21, and flipped it around: VersionedGridFieldEditForm should be opt-in, not opt-out.
I've also just realised that "revert" doesn't work the way authors might expect, and we need to at least add a warning: https://github.com/silverstripe/silverstripe-versioned/issues/24. ChangeSet::revert() is proposed, but not actually implemented. ChangeSet::unpublish() isn't even proposed in the RFC, probably because of the ambiguity it creates around what's going to be unpublished?
A related comment on <IP_ADDRESS>. DataObject::unpublish in the RFC

Note: the meaning of the term "unpublish" has been left consistent with the behaviour of "unpublish" action in 3.x. This feature could potentially be replaced with a new action, which is to "undo the last publish of this record", which would instead query the DB for live version of this record prior to the current, and revert it to that. This would require additional scoping.

Another goodie: Unpublish cascades to owners by default - https://github.com/silverstripe/silverstripe-versioned/issues/25

@chillu @sminnee @tractorcow any thoughts on duplicate and delete also utilising $owns?

Duplicate has "duplicate with children" and "duplicate self only" UX (at least for pages). It could use owns, but it's risky if some owned object's don't easily support duplication (e.g. files).

@tractorcow is this a similar distinction in that has_one are problematic?

It's not so much the relationship as the datamodel. it's not always logically valid to assume an object can be duplicated, e.g. Member, File.

File fits in the has_one category and Member doesn't seem like something that would ever appear in an $owns array, particularly because it isn't Versioned (although I'm arguing that perhaps $owns should be wider than Versioned).
If $owns isn't relevant (and stays Versioned specific), I'll add an equivalant for duplicate and delete via an Extension.

For discussion on recursive unpublish please continue the conversation over at https://github.com/silverstripe/silverstripe-versioned/issues/23


Update the controller button diagram

Need to update some things to include new automatic behaviors.  We should have this for world's to show judges, other teams, and to train a substitute driver team (maybe??)

Yes, Teo and I best drive team (real)
(also done)


mutableState checkums part#1

This patch contains part#1 of the changes needed for generating / verifying checksums on workflow mutable state. This patch generates a checksum everytime mutableStateBuilder.closeXXX() methods are called. The generated checksum will be stored in persistence along with mutable state. When workflow mutable state is retrieved from persistence, checksum verification is done within mutableStateBuilder.Load() method. This patch does not contain the following changes (will be done in a followup part#2 PR):

Changes to persistence to store/retrieve checksum
Implementation for InvalidateCheckumBefore dynamic config option
Buffered events to be included as part of checksum payload

Approach Overview
On a high level, the proposed solution is to compute a crc checksum on a pseudo payload derived from workflow mutable state. This checksum would be recomputed everytime there is an update to the workflow mutable state. The checksum would be stored alongside the mutable state in persistence. When a workflow is first loaded from mutable state into the cache, pseudo payload will be reconstructed and derived checksum will be verified for correctness.  If there is a mismatch, appropriate remedial action, if possible, would be taken.
To compute mutable state checksums, a pseudo checksum payload is constructed using a subset of fields from mutable state. The reason for doing this to reduce overhead of cost of computing checksums (cpu / heapalloc / latency). Checksum will be computed on the serialized byte array of the payload struct. For verification, the same pseudo header will be reconstructed, checksum generated and compared against the stored checksum. Verification will be performed when workflow mutable state is loaded into cache. In the future, we can consider offline verification of checksum for all workflows in the background via the mutable state scanner.
An alternative to pseudo checksums would have been checksum on the whole serialized mutable state blob. However, the current implementation does not serialize mutable state i.e. its up to the persistence layer to store mutable state as columns across one or more tables or a single blob. Given this, this proposal avoids serializing / deserializing whole mutable state just for the sake for checksum verification. However, if after testing, the cost turns out to be low, we might consider doing this.
Versioning
Regardless of the serialization format, there needs to be a version associated with the checksum payload. This is to allow for future modifications to the set of fields that comprise the pseudo checksum payload. This version will be stored alongside the checksum in persistence. When a new field needs to be added to payload, a PayloadV2 struct will be created. Likewise, during verification, the payload_version field will be used to decide which struct to use.

Coverage increased (+0.2%) to 67.936% when pulling 626c4bb350b1cdd134554fad71b655d9866c7a05 on venkat1109:v_ms_crc into e057c46670ecda72e1c40bae9e70fe126549af0c on uber:master.


Did you forget to signal async completion

When I ran 'npm run gulp vscode-win32-x64', I got an error called 'Did you forget to signal asynccomplete?', which caused 'Bundling' to fail

Can you try again with the latest build?

I have tried the latest version and it was successful. Thanks.


Pandoc template support

Requested by @EleanorKonik on the Discord's #creative channel
Basically, you can write template files for most output formats which use a templating language to include bits of the input document. Using the Pandoc CLI the command will have a --template=file.tex if you've got a template called file.tex in the working directory or ~/.pandoc/templates.
My idea for the UX is to have a setting where you list files anywhere in your vault that you'd like to be templates (or specify a template directory?). Then, when you export, if there are any custom templates for that export type you should be prompted for the template you want, including the default one.
Related links:

Official docs
Default LaTeX template
Simpler example

For what it's worth, I'm pretty sure that the templates I personally need are here:
https://github.com/prosegrinder/pandoc-templates
Of course I have no idea how to get them to work because the windows directions are under revision :P but I thought maybe his might help?

Thanks, I'll use that to test the feature when I'm done. Hopefully you'll be able to just copy the files from that repo into your vault to use them as templates when I'm done

This is now possible, using the Extra Pandoc arguments setting. Here's a quick tutorial: https://github.com/OliverBalfour/obsidian-pandoc/wiki/Pandoc-Templates
It's not very detailed at this stage, so apologies if it's confusing.
As for the writing templates you've posted @eleanorkonik, it looks like they're scripts that wrap around Pandoc so you can't use them directly as Pandoc templates. I think they need to be invoked in the terminal directly.

Any issues/confusions about templates in this plugin should be appended to this issue for now

What about having a template: in the YAML front matter. For example, saying:
---
template: local.latex
---

would be the same as --template=local.latex. That would allow to choose a different template per note. No need therefore to change the settings or to ask the user to choose a template each time one exports a note.

Hello,
I'm not a programmer so I apologize for this very basic question. I have a docx template file, but where do I place it? How do I create or navigate to the template path ~/.pandoc/templates? Thanks so much for your work and help.
Regards,
Jonah

Hey Guys, i am working on Windows for Work and Mac for privat. I sync all my notes etc. via Obsidian. On Mac, its all fine with the --reference-doc but on Windows, i have no chance... Via Commandline there is no problem to convert the md in docx. pandoc -o test.docx test.md --reference-doc C:\Users......\MyWordVorlage.docx Mac Settings: --reference-doc Users/lars/Documents/myref.docx WinSettings (tryed more): --reference-doc C:\Users......\MyWordVorlage.docx --reference-doc C:\Users......\MyWordVorlage.docx --reference-doc C:/Users/.../.../MyWordVorlage.docx
any Ideas?

the same problem, in extra Pandoc arguments added something like: --reference-doc Users/lars/Documents/myref.docx
but export on start failed because of error: file doesn't exist

I can define a new template for latex documents, but if I create a PDF using Latex this template is not used.  It seems to find some default template which is different to that in ~/.pandoc/templates/
I am very confused.  Any ideas

I can't seem to get a custom template to work. If I run pandoc vanilla, it's just fine, but as soon as I enter "--template ms-template" into the settings, I get an encoding error (attached screen).

It looks like there is something wrong in the document (also attached)
ms-template.docx
But it was generated by Obsidian pandoc. All I did was tweak a few paragraph styles (font color, size, alignment, spacing, and page breaks) in Libreoffice, created the directory in my home folder ~/.pandoc/templates, and put the file there. So I'm not sure how I can be messing this up. And the template works in Typora--which is a work around for now of course, but why leave Obsidian if I don't have to?

@kelleyskovron Did you ever resolve this issue? I'm having the same error

I can't seem to get a custom template to work. If I run pandoc vanilla, it's just fine, but as soon as I enter "--template ms-template" into the settings, I get an encoding error (attached screen).

It looks like there is something wrong in the document (also attached)
ms-template.docx
But it was generated by Obsidian pandoc. All I did was tweak a few paragraph styles (font color, size, alignment, spacing, and page breaks) in Libreoffice, created the directory in my home folder ~/.pandoc/templates, and put the file there. So I'm not sure how I can be messing this up. And the template works in Typora--which is a work around for now of course, but why leave Obsidian if I don't have to?

@OliverBalfour @kelleyskovron Did you ever resolve this issue? I'm having the same error.
I'm using the prosegrinder .docx template that @eleanorkonik linked above

the same problem, discussed here https://forum.obsidian.md/t/custom-word-template-with-pandoc-pluugin/41685/11

still looking for solution

What about having a template: in the YAML front matter. For example, saying:
---
template: local.latex
---

would be the same as --template=local.latex. That would allow to choose a different template per note. No need therefore to change the settings or to ask the user to choose a template each time one exports a note.

This would be a very simple solution that I agree would be incredibly useful.

@Ellpeck what happens if you do this? IIRC this should work, although you might need to do something like template: /full/absolute/path/to/template.tex.
If it doesn't work using an absolute path that's a bug, if it does then I need to add better documentation because this is pretty non-obvious.

@Ellpeck what happens if you do this? IIRC this should work, although you might need to do something like template: /full/absolute/path/to/template.tex.
If it doesn't work using an absolute path that's a bug, if it does then I need to add better documentation because this is pretty non-obvious.

I've only tried with a URL (which works with the --template pandoc argument and, imo, should work with this plugin too), and that doesn't make a difference at all. It doesn't seem to be picked up by the plugin or by pandoc, and so the template isn't applied.
Unless you mean with an updated dev version? I've only tried with 0.4.1, which is the most recent public version.

@Ellpeck yeah that's very strange. The plugin doesn't treat the template: different to any other metadata CLI options like author:, so I'll look into that

@Ellpeck Do you have spaces in your absolute path to the template, that you wouldn't have in your path to other metadata CLI options ?

@Ellpeck Do you have spaces in your absolute path to the template, that you wouldn't have in your path to other metadata CLI options ?

As I said, the only time I tested this, I used a web URL (which is supported by the --template pandoc option, and also worked when i added it to the "additional arguments" section of the plugin settings), so no, no spaces!

Hi. I am configuring Obsidian to reproduce some features of Zettlr that I like, including Zettlr's pandoc handling.
Zettlr has different export..yaml files for different output formats. For example, to export Markdown to LaTeX in Obsidian with your plugin exactly as I would do this in Zettlr, I have to set
--defaults=C:\Users\fleng\AppData\Roaming\Zettlr\defaults\export.latex.yaml  --bibliography C:\Users\fleng\Dropbox\Zettelkasten\media\MyLibrary.json
whereas to export to pdf with pdflatex, I need to change the arguments to
--defaults=C:\Users\fleng\AppData\Roaming\Zettlr\defaults\export.pdf.yaml  --bibliography C:\Users\fleng\Dropbox\Zettelkasten\media\MyLibrary.json
The export files I use are in my github under flengyel/Zettel, as is the latex template, which is invoked by the export files. The point is that the plugin might include separate command line argument for each of the output formats, since the defaults may change. I was unable to specify the CSL_JSON bibliography in the citations section of the settings.
Many thanks for your work.

I can't seem to get a custom template to work. If I run pandoc vanilla, it's just fine, but as soon as I enter "--template ms-template" into the settings, I get an encoding error (attached screen).

It looks like there is something wrong in the document (also attached)
ms-template.docx
But it was generated by Obsidian pandoc. All I did was tweak a few paragraph styles (font color, size, alignment, spacing, and page breaks) in Libreoffice, created the directory in my home folder ~/.pandoc/templates, and put the file there. So I'm not sure how I can be messing this up. And the template works in Typora--which is a work around for now of course, but why leave Obsidian if I don't have to?

@OliverBalfour @kelleyskovron Did you ever resolve this issue? I'm having the same error.
I'm using the prosegrinder .docx template that @eleanorkonik linked above

Finally figured out what it was, and as I feared, it was just me missing something that was obvious once I took the time to drill far enough into the Pandoc user guide. Basically, you don't use the 'template' command for docx, but instead 'reference-doc'. As such, it's not looking for a file in the templates folder. If you drop the file directly in /home/.pandoc (assuming that's where your user data directory is located) and name it 'reference.docx', then it works right out of the box, no extra arguments needed in Obsidian. I generated a reference file directly from pandoc per these instructions and customized it myself based on my editor's preferences.

Finally figured out what it was, and as I feared, it was just me missing something that was obvious once I took the time to drill far enough into the Pandoc user guide. Basically, you don't use the 'template' command for docx, but instead 'reference-doc'. As such, it's not looking for a file in the templates folder. If you drop the file directly in /home/.pandoc (assuming that's where your user data directory is located) and name it 'reference.docx', then it works right out of the box, no extra arguments needed in Obsidian. I generated a reference file directly from pandoc per these instructions and customized it myself based on my editor's preferences.

I'm JUST starting to explore the use of this plugin, but am completely intimidated by all of it.
I have my memoir template in docx given by my university.

WHERE on Windows should I place my template file.
Should it be saved as a template doc file or leave it as a docx file.
How do I tell the Pandoc Plugin to use the template.
I do not understand where the "Extra Pandoc arguments option" or any of the other commands are written or given. This is not very clear to this very non-programmer.

Thanks for any help!

Wow! Thanks! I'm quite familiar with Windows and such, but Pandoc and LaTex is just too much programming for me.
Turns out the reason I couldn't find the Pandoc folder under AppData is because I forgot to install it. Since I was using the HTML output in Obsidian, I never went through with the actual install. Woops.
Now it's installed, I put the file my university sent me as a template (it's a docx) file and renamed it reference.docx
Wanted to see if it would work directly, but it seems not. Looks like I'll have to update everything by hand, which kind of defeats having the template already done. I'll try updating what the pandoc plugin outputs to match the university's output, but I'm skeptical it'll work.
I wish the math department would hurry up and update the LaTex template as I could possibly just use that, but that might be asking for a too big learning curve considering the time I have left...
Thank you so VERY MUCH for your very detailed input!

Ok, did all of the above, but sadly, whenever I output to docx, it uses Word's normal style template. I'm at a loss as to what else to do.
I CREATED a new folder in ROAMING (the default install is in Local) and THAT worked. It's not perfect (still have to check other styles (tables, figures, etc) but I'm on the right track.
Thank you!!

I can define a new template for latex documents, but if I create a PDF using Latex this template is not used. It seems to find some default template which is different to that in ~/.pandoc/templates/
I am very confused. Any ideas

Were you able to solve this issue? I am facing the same problem.

On my windows computer, the Installation Wizard always installed the pandoc program into my User\AppData\Local\Pandoc directory and not in the said .pandoc folder.
Also I could not find the default template obsidian-pandoc is always using.
Inside of ........\Local\Pandoc\     there is no folder called template.
I searched for it a long time but I didn't find it.
What worked for me was to just copy and paste the whole path of the template.
--template C:\your whole path to the template you want to use\template.tex
after that it uset my wished template
Now I have to generate my wished template.
Aight I'm outta here and solving my next issue.

What about having a template: in the YAML front matter. For example, saying:
---
template: local.latex
---

would be the same as --template=local.latex. That would allow to choose a different template per note. No need therefore to change the settings or to ask the user to choose a template each time one exports a note.

This would be a very simple solution that I agree would be incredibly useful.

Can we have this please?

What about having a template: in the YAML front matter. For example, saying:
---
template: local.latex
---

would be the same as --template=local.latex. That would allow to choose a different template per note. No need therefore to change the settings or to ask the user to choose a template each time one exports a note.

This would be a very simple solution that I agree would be incredibly useful.

I think this could be combined with new "autocomplete" feature of obsidian properties.
If you reuse some templated, you could select it from dropdown for property template (or better pandoc_template)


Sign in with name (XXL)

User Story
As a user, I want to sign in with a unique name so I can start chatting easily with an identifier that means something to me.
As a user, I want to sign in with a unique name so I am differentiated from everyone else in the chat room.
As a user, I want to be able to return to the chat room without signing in if I signed in within the last 24 hours.
Acceptance Criteria
Notes:

A 'valid' name: 1) composed of characters on a standard American, British, or Australian QWERTY keyboard 2) consists of 3-20 characters

Acc
Given that ...
When ...
Then ensure ...

1
I am using a desktop computer, tablet, or smartphone
I visit the sign in page
The page is tailored to my device

2
- I have entered my desired name- The name I entered is valid and not being used by another user signed into the chat room
I submit the form
i) I am informed that my name was acceptedii) I am taken to the chat room

3
- I have entered my desired name- The name I entered was invalid and/or is being used by another user signed into the chat room
I try to submit the form
i) I am informed that my name was not accepted

4
- I have previously signed in on this computer- I signed in within the last 24 hours
I visit the sign in page
I am immediately sent to the chat room

5
- I have previously signed in on this computer- I did not sign in within the last 24 hours
I visit the sign in page
I must sign in as usual

Acceptance Tests
Wireframes
Wireframe 1
Diagrams
Database ER

Removed the criteria requiring a new name to be suggested when one is already taken. I don't think anyone would use it -- doesn't add value. Recorded feature in the Stray Stories section of the USM.

Done!


Allow to have negative sign after E in cell size

For the moment the numbers like 2.1511694646112378E-07 are not parsed
correctly.

Thanks for report! I decided, however, to rewrite the parsing code more thoroughly (https://github.com/cp2k/aiida-cp2k/commit/6e5eb7f15f7cc9fe6476a1a2f6a046fa74c3ef4d). Hence, I'll close this PR.


Turning off monitor leads to background being cut off

Hyprland Version
 System/Version info
Hyprland, built from branch main at commit 356414639fc06ace7045236ec41d673342981057 dirty (core: fix missing workspace events during swapping (5251)).
Date: Sun Mar 24 20:50:41 2024
Tag: v0.37.1-64-g35641463

flags: (if any)

System Information:
System name: Linux
Node name: inator
Release: 6.8.1-arch1-1
Version: #1 SMP PREEMPT_DYNAMIC Sat, 16 Mar 2024 17:15:35 +0000

GPU information:
00:02.0 VGA compatible controller [0300]: Intel Corporation Alder Lake-P GT2 [Iris Xe Graphics] [8086:46a6] (rev 0c) (prog-if 00 [VGA controller])

os-release: NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo

plugins:

Bug or Regression?
 This persists until I reload hyprland, generally by writing to the config.
before:

after:

Windows are still able to be in the black area. Sizes of the monitors are 3840x2560 (the one being turned off), and 2560x1440. You can also see that part of my waybar gets cut off on the right side. I've confirmed that this is not a waybar bug since this worked fine at least a couple weeks ago along with the background. It also only happens when disabling the 1440p monitor... I'm thinking there's a regression with any pixel math hyprland does when disabling monitors.
The same issue happens when using hyprpaper along with windows I try to close flickering in a half-closed state and freezing up. Once I look into that a bit more I'll make a separate issue but it might be related to the same bug here.
How to reproduce

Start hyprland, with two monitors
disable monitor with hyprctl keyword monitor ,disable

Crash reports, logs, images, videos
hyprlandconf.txt
test.txt
my config and logs from /tmp/hypr are attached

if this is a regression please git bisect

4bc669f9331bb66ab30bd705d09f1239bc3e83ed
Commit from Feb 28th

what wallpaper tool is this

Currently using swaybg, but it happens on hyprpaper too


Autoref specialization doesn’t seem to work with associated types

Hey David,
Sorry if GitHub Issues isn’t the right forum for this, seemed better than reviving an old Reddit thread. I have gotten Autoref specialization to work well in toy cases, but my actual use case has an associated type in it and that causes things to fall down. As a simple (nonsensical) example:
trait MyTrait {
  type MyAssociatedType;
}

impl<T: Clone> MyTrait for &T {
  type MyAssociatedType = bool;
}

impl MyTrait for String {
  type MyAssociatedType = str;
}

fn<T: MyTrait> get_toy_example(input: T): <T as MyTrait>::MyAssociatedType {
  ...
}

As far as I can tell the issue is simply that Autoref does not apply to the <T as MyTrait> section, so it will not find implementations for anything other than String. If I change it to <&T as MyTrait> then it will find implementations for all Clone structs but will not special-case String.
The experimental specialization feature built into Rust also falls down for associated types (and seems to be gathering dust) so I’m sort of stuck here. You seem to be the foremost expert on Rust specialization so I figured I’d ask :) Am I hosed here?
If so, might be worth updating the case study doc with that second caveat added. It does come up pretty high up on the Google results for Rust specialization.

This is the limitation documented in the writeup. https://github.com/dtolnay/case-studies/blob/2d215ae2caca470bf92534b77eb63904a08a9be4/autoref-specialization/README.md#limitations
Since get_toy_example is not a macro, you only get associated item resolution (method resolution, associated type projection) based on the trait bound.

Ah, I see. I am actually writing this for a macro though, but it’s a Derive macro that needs to generate functions outputting the correct type. So I take it the intention isn’t “this only works when you’re writing a macro” but more like “this only works in code that specifically runs as part of a macro, not in the code it generates”?


Is it possible to restream on Youtube?

Push rtmp in flv to Youtube?

It's possible. Could you please describe the specification to stream to Youtube?


Room cleaning

Here you have the ability to clean just a room with one click (or with Alexa Scene)
working pretty good

That’s awesome! I’ll have a look at the code changes sometime tomorrow, if that’s ok. Or if Nico is faster...
One question, though:
Do you mind explaining how to set up and use this feature in the Readme file?
Thank you!

and yes of course, will update the readme file :-)

Please review updates :-) thanks

Liking to #95 and #107 as I believe they can be closed once we get this merged :)

Merged! Thanks!

Now v0.7 or improvements first?

you are welcome!
thats a good question ... i think you can bump to 0.7

Successfully published<EMAIL_ADDRESS>sudo su -
npm -g install homebridge-xiaomi-roborock-vacuum@latest


Updating README and refactoring code to use functions and arrays.

We put the first 5 questions into a multi-dimensional array and used a for loop to asked and iterate through them. Put the first 5 questions into their own function as well as question 6 and 7. We also re-organized the code a bit.

Great work reducing redundant code!


✨ Open Ports Menu

Description
I have just built the latest CodeEdit build and used the new feature introduced in #1798, and I noticed that there was no menu to manage open ports. For example, if I ran a web server on http://localhost:3000, an editor like VSCode would show that there is an open port in it's status bar:

What if CodeEdit had open ports in the navigator?

Or Ports could be a utility in the utilities drawer alongside terminal debug console, and output.

Or Ports could be a utility in the utilities drawer alongside terminal debug console, and output.

That makes a LOT more sense...

Can this be assigned to me? I have some ideas and started messing around with finding opened ports and even port forwarding.

@LeonardoLarranaga Thanks for taking this one on! I've updated the issue description with more details. Nothing is set in stone so please let me know if you'd like me to change anything or if you have any alternative ideas.


Add integer division like 7 / 2 => 3

The integer division is the biggest difference from CRuby. Since we don't implement Bignums in mruby, we use Float numbers instead on overflow. So some integer calculations may result in float numbers. That's the reason we use float division by default instead of integer division.
The options for the future are:

make division integer division by default (this PR; compatible with Ruby)
1.1.  overflow should make float as it does now (inconsistency? maybe)
1.2.  overflow should raise an exception (big limitation; acceptable?)
1.3.  implement Bignum using mpz or some other library (need more RAM)
make division float division as it is now
2.1. Python3 chose this change; CRuby can follow after mruby

Any opinion?

From my narrow perspective of someone who embeds mruby into a program for data analysis, the current status (option 2, i.e. float division) is much less confusing for my users than integer division. Some data plotting programs like gnuplot default to integer division, but it's the kind of things that cause severe headaches from time to time, even to someone like me who understands what type casting is about.
If you choose to make option 1 the default, is there any possibility for changing the default (back to 2) at mruby compile time ? Thanks a lot.

For whatever my opinion might count for, I am primarily using mruby to port legacy code to the web (getting cruby to cross compile to wasm and actually work is a nightmare), so this is the only patch that I had to make to mruby for everything to be consistent. I don't really see the harm of having such a switch that will change integer division to cruby behavior (which will be turned off by default).

At the moment I started mruby, I had a plan to make Ruby integer division to result in float numbers, but due to the compatibility issue, I abandoned the plan. So there's little reason to keep this behavior as an experiment for Ruby's future.
So I will merge this pull-request to mruby3 branch for the future.


Submission endpoints

implementation primarily in core: https://github.com/brain-score/core/pull/10

[ ] process_zip_submission
[ ] process_github_submission
[x] run_scoring

Merged in different PR


How to append class or text to newly added tag?

Hello,
Is it possible to append something to newly added tag?
For example,
tag1 (50), tag2 (50)
There are two existing tags and when i add another tag i.e. tag3, it will auto append '(50)' to tag3.
Thanks in advance

Please check it:
https://github.com/bootstrap-tagsinput/bootstrap-tagsinput/pull/543
It's not official, but it can help


Renamed ManagedZoneInfo to ZoneInfo and added time units for ttl.

Fixes #581 and fixes #579.

Ready for another pass.

Looks good. one comment (also just noticed that in ProjectInfoTest we refer to the static fromPb method using an instance).

Fixed ProjectInfoTest too.


api-docs: Clarify error response keys and handling documentation.

Notes on changes:

Updates the main description of the API error handling article so that the code key in the error reponse is more accurate.
Adds a bullet point to the API changelog for feature level 76 about the code key being consistently in all error responses.

This is based on commit 8b9011dff8, which completed the migration to JsonableError, at which point the API feature level was already set to 75, and not yet set to 76.
Alternatively, we could just use the major release (Zulip 5.0) for when clients can expect all error responses to contain a code key.

Also, revises the other error related feature level 76 entries in the API changelog.
Updates the descriptions of the shared error responses documented on the error handling page to include information about any extra fields and to have the changes notes at the end of the description.

Relevant CZO conversations:

#api design > error docs
#api documentation > error responses

Screenshots and screen captures:

API changelog feature level 76 updated entry
Current documentation - find on page "feature level 76"

Error handling article
Current documentation

Self-review checklist

[ ] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[ ] Explains differences from previous plans (e.g., issue description).
[ ] Highlights technical choices and bugs encountered.
[ ] Calls out remaining decisions and concerns.
[ ] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[ ] Each commit is a coherent idea.
[ ] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[ ] Visual appearance of the changes.
[ ] Responsiveness and internationalization.
[ ] Strings and tooltips.
[ ] End-to-end functionality of buttons, interactions and flows.
[ ] Corner cases, error conditions, and easily imagined bugs.

Updates:

Updated for review feedback above:

The code key is documented like the other mandatory keys (msg and result)
The new feature level 76 API changelog entry to just note the code key always being present and default value.

Added a header for the common error response section so that the Changes entry for the main description reads more clearly. It's also nice to have a header to link to for this section in the API changelog.
Updated API changelog feature level 76 to have "Error handling" to start the entry vs "All REST API endpoints" as that seemed clearer.

I left the API changelog entry for feature level 167 (about the ignored_parameters_unsupported) to start with "All REST API endpoints" even though it links to the error handling page because that seemed a better fit there.

Added a commit for feature level 36 rate limit error documentation, which really just updates those to better match our current conventions. See screenshots below.

Updated screenshots:

API changelog updates
Current documentation

Error handling documentation
Current documentation

Merged, thanks @laurynmm!


bugfix: Netty memory leak (#1304) (#1318)

Ⅰ. Describe what this PR did
Ⅱ. Does this pull request fix one issue?

Ⅲ. Why don't you add test cases (unit test/integration test)?
Ⅳ. Describe how to verify it
Ⅴ. Special notes for reviews

Codecov Report

Merging #1333 into develop will decrease coverage by 0.02%.
The diff coverage is 0%.

@@              Coverage Diff              @@
##             develop    #1333      +/-   ##
=============================================
- Coverage      48.64%   48.62%   -0.03%
  Complexity      1643     1643
=============================================
  Files            332      332
  Lines          11521    11524       +3
  Branches        1424     1424
=============================================
- Hits            5604     5603       -1
- Misses          5297     5300       +3
- Partials         620      621       +1

Impacted Files
Coverage Δ
Complexity Δ

.../io/seata/core/rpc/netty/v1/ProtocolV1Decoder.java
0% <0%> (ø)
0 <0> (ø)
:arrow_down:

...server/store/file/FileTransactionStoreManager.java
45.99% <0%> (-0.35%)
19% <0%> (ø)

Continue to review full report at Codecov.

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


Update dependencies; fix tests

📝 Description
The dependencies are outdated possibly containing security vulnerabilities.
✔ How to Test

Create a linode.
export TEST_TOKEN=YOUR_LINODE_TOKEN
export TEST_LABEL=the-lable-of-linode-you-created-in-step1
make test

@lgarber-akamai I bump up oauth2 and linodego after your review. Feel free to or not to re-review.


Document ngProjectAs in content projection (advanced)

See https://github.com/angular/angular/blob/f39c9c9e75671a7e235734b6b8aef263f6dff254/modules/%40angular/compiler/test/template_parser_spec.ts#L1082
Please ping me if you have any question

As promised on angular/angular#12930, here is the pull request #2851. Let me know if it looks good.


inter-app-communication in spa-angular-cli project

Please advise if this project provides "hooks" to implement inter-app-communication , similar to https://github.com/me-12/single-spa-portal-example#multiple-angular-apps?
We have requirement to load different route base on event.
2 .We will be running in production environment on IBM HTTP Server (Apache based), we need implement portal to support this on server vs webpack. How should implement configuration?

Hello @rberkovi , could you provide to me the way to do hooks with this project?
Sorry for the delay :-)

Sorry, I'm trying to use the project . I'm not contributing . looking for help


define a model template script

scrpt should have a tf model defined along with consts that can be imported to the train.py script
which model-{custom-name}.py you use will be passed as an arg to the train.py folder

for now models can be defined in the the src/model_defs/your-model-name.py then that model code can be copy pasted into the train.py file under the model definition section. For now this is fine, but would be nice to use model def classes to import models into train.py


Enzyme Internal Error: unknown node with tag 7

Current behavior
Some of my tests, that I haven't touched for over 10 weeks (also it's corresponding components) suddenly started to fail with the Error  Enzyme Internal Error: unknown node with tag 7
Example testcase where that happens:
let searchField = mount(<Autocomplete value='b' searchResults={[]} isOpen />)
const searchResultsNode = searchField.find(SearchResults)
expect(searchResultsNode).toBeTruthy()

<Autocomplete /> is a regular PureComponent, so is <SearchResults />
Expected behavior
.find() method not to throw that error, but find the matching element
Your environment
API

[ ] shallow
[x] mount
[ ] render

Version

library
version

enzyme
^3.2.0

react
^16.6.1

react-dom
^16.6.1

react-test-renderer
^16.3.0

adapter (below)

Adapter

[x] enzyme-adapter-react-16
[ ] enzyme-adapter-react-16.3
[ ] enzyme-adapter-react-16.2
[ ] enzyme-adapter-react-16.1
[ ] enzyme-adapter-react-15
[ ] enzyme-adapter-react-15.4
[ ] enzyme-adapter-react-14
[ ] enzyme-adapter-react-13
[ ] enzyme-adapter-react-helper
[ ] others ( )

If you update enzyme to the latest version, the 16 adapter should still work on React 16.3 - but certainly the 16.3 adapter will be more stable for you.
I'd like to fix this issue if it's still occurring on the latest general 16 adapter and enzyme. Can you confirm?

Updating fixed the issue


Removed bluebird from api-framework module

#14882

Hey @halldorbjarni I've merged and labelled this one now. Thanks for all of your contributions 🙏
We're down to less than 100 usages of bluebird now I think... incredible. Not sure if you're planning to keep going outside of hacktoberfest but we'd love it if you did ❤


Broken focus field for non image file types

Thank you very much for your field! It is a nice addition to the Kirby universe. 👍
I wanted to ask if it is normal for non-image fields to show a broken focus field? Maybe we can hide the field based on the supported mime types?

Thanks for reporting.
In previous versions there was a $file->canHaveThumbs() Kirby core method which did the check, but it seems to be deprecated. I will push a fix to the development branch in a minute. Would be awesome, if you could check it!?

https://github.com/flokosiol/kirby-focus/archive/develop.zip

Great. Thanks for testing. I will try to release a new version as soon as possible.


Add possibility to cancel a request in Sismo Factory

Description
Once a user submits a request to generate their Sismo Badge, during the waiting period (up to 48h), the user might change their mind and wish to cancel (or modify) the request. However, currently there seems to be no button to do so.
Expected Behavior
Add a cancel button for pending requests (with a "are you sure to want to cancel" confirmation step) to Sismo Factory interface. Cancel the associated pull request and refund the funds.
Actual Behavior
The user must wait (and can't change anything).
Screenshots (if applicable)

I'm closing the issue for now


To begin the interactive learning mode from the normal interaction in the command line chat

Rasa Core version:
0.9.6
Python version:
3.5
Operating system (windows, osx, ...):
windows 7
Issue:
Hello,
So my issue is i would like to begin the interactive learning mode from the normal interaction in the command line chat. For this, i added a simple function in the train_online file that does the same as the main. This test didn't work and i would wondering if there is a simple fix or will i have more work to do in order for this to work (eventually, maybe can't be done).
Daniel.
Content of domain file (if used & relevant):

I'm not sure what you mean, but you have to start interactive mode with the --interactive flag. Looks like you're using a very old version of Core though, I'd suggest upgrading and then you can take a look at the docs here: https://rasa.com/docs/core/interactive_learning/

This is more a suggestion than an issue, @akelad :wink:
I think it can be done, at least I don't see a reason at the moment why this won't work. Both interfaces (cmdline, interactive learning) start a rasa core server and communicate with that through the HTTP API - so yes we could pass an existing tracker (your conversation) to the interactive learning and then continue in there. How would the interaction afterwards look like, would you go back to normal chatting?

my bad, i misread that 😄

Yes, the idea is for the cmdline, in a normal conversation, be used also as a learning interface. Possibly as result of a "normal" conversation between the chatbot and the user. (Of course, same adjustments should be made in order for this to happen).


Remove all layers button should remove polygon search draw

Currently it seems that it is not possible to remove the polygon itself - https://github.com/alex3165/react-leaflet-draw/issues/26
I'll make it remove the polygon searched data, so it won't show on next SidebarRight opening.


gazebo_video_monitors: 0.8.1-1 in 'iron/distribution.yaml' [bloom]

Increasing version of package(s) in repository gazebo_video_monitors to 0.8.1-1:

upstream repository: https://github.com/nlamprian/gazebo_video_monitors.git
release repository: https://github.com/ros2-gbp/gazebo_video_monitors-release.git
distro file: iron/distribution.yaml
bloom version: 0.11.2
previous version for package: null

gazebo_video_monitor_interfaces
* Add missing test dependency
* Contributors: Nick Lamprianidis

gazebo_video_monitor_plugins

No changes

gazebo_video_monitor_utils

No changes

gazebo_video_monitors

No changes

Holding for Iron sync


Implement logging for view model updates

Have you read the Contributing Guidelines?
Issue #130
Describe your changes
Clearly and concisely describe what's in this pull request. Include screenshots, if necessary.

Avoid access collectionView in init (SimpleFlowLayoutViewController), which will call viewDidLoad immediatly.
Remove last terminator in customized debugDescription.
Split steps for reconfiguring supplementary views.
Log reload and update view model.

Hey @nuomi1 !
I've got some new ideas here to simplify and also allow clients to hook into this:

We should introduce a Logging protocol
This can be an optional property on the Driver (and pass-through to the DataSource)
Let's not involve the Options for this.  Otherwise, because of the protocol, they could implement their own. This would allow them to get those logs sent somewhere, if desired

If this feels like too much to do, no worries! I can try to tackle this. 😄

Also, for now, I think we should remove the changes from #144 from here. 😊

Since I removed the changes related to #144 , I also removed the logs recorded in DataSource.

huh. looks like GH Actions is broken?

This is a pretty basic / simple implementation for now.
Let's see if folks using the library desire more granular details. Then we can make changes/updates as needed.


Refactoring the index.js file of AWS and GCP plugin by renaming the parameter

We are passing in the configuration details to the plugin  from the ncConfig file via the common package
https://github.com/leopardslab/nodecloud/blob/c8597192259598cbb90261b75ccb8aaf209deb78/packages/common/core/base-provider.js#L58
here the parameter for taking the configuration details from the ncConfig file is named  options.
https://github.com/leopardslab/nodecloud/blob/c8597192259598cbb90261b75ccb8aaf209deb78/packages/aws-plugin/index.js#L4
Similarly, the GCP plugin is also taking in the configuration details as a parameter named options.
https://github.com/leopardslab/nodecloud/blob/c8597192259598cbb90261b75ccb8aaf209deb78/packages/gcp-plugin/index.js#L13
It would be easy to understand if we rename the options as configuration details

@mbcse @rajitha1998
Can we do something like this?


Add possibility to specify article language

Either detect language when full url is passed to -S (br.wikipedia.org) or add a language option which changes the language in the hard coded url here: https://github.com/yashsinghcodes/wik/blob/main/wik/info.py#L42

I am thinking of adding a new argument for the language like  -l and then your language code in your case br and a help feature which will list all the language and there respective codes something like list-lang which will list all the language and there codes you can pipe it into grep search for your language.


Improve sawnet command usability

@jsmitchell I am pretty sure I got the tree printing to work. Let me know if you can break it. It is based on git's tree printing.

Print unresponsive nodes without depending on a side-effect


Terminal profiles don't shown on dropdown

Type: Bug
I just install the vscode with default settings and no plugin installed on a new laptop. No terminal profile is shown on dropdown and can be selected.

I can't reproduce this, here are some follow ups you can try:

Try the latest version
Comment out all your settings, close all vscode windows and reopen
Close all windows and run code --log trace and then check the Pty Host channel in the output panel

This issue has been closed automatically because it needs more information and has not had recent activity. See also our issue reporting guidelines.
Happy Coding!


I18n hebrew

added Hebrew language folder

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

GitHub release
npm package (@latest dist-tag)

Your semantic-release bot :package::rocket:


Inputting batch of data w/ model that has fully connected layer w/ softmax.

Hi,
I was wondering if there was any way to output a std::vector of matrix<unsigned char/input type> from a softmax FC network.
Something along the lines of: std::vector<matrix<float, 1, 7>> softmax_outputs = model(tensor_of_inputs);
Thanks,

Yes, you can do this by writing your own loss layer and have it output anything you want.

Is there no way to do it presently right now w/ the current softmax loss layer?

You can get the last tensor by calling subnet().  That last output from the network has all the log probabilities in it for each class.  Then you can do whatever you want with them like stuff them into a std::vector or anything else you like.

My bad, think I phrased my question wrong. As of right now softmax outputs a matrix of floats representing the distribution of probabilities for a bunch of classes.
Is there any way to call say a convolutional net with softmax being the loss layer on a batch of images, to then get a std::vector of a bunch of softmax outputs for each image in the batch with the present softmax implementation in Dlib right now? Or, does that have to be implemented through a custom loss layer?

If you have the floats then you have the numbers.  You can get them.  You seem to know you can get them.  I don't know what else to say.


F-Droid inclusion

Hello, would you consider publishing the app on F-Droid please?
See : https://gitlab.com/fdroid/fdroiddata/blob/master/CONTRIBUTING.md#merge-requests

Hi @shuvashish76, thanks for submitting this request. I'll look into including the app on F-Droid once I get the chance, but in the meantime you can find it on IzzyOnDroid: https://apt.izzysoft.de/fdroid/index/apk/com.fibelatti.photowidget

Thanks, yes I noticed that. Publishing on official F-Droid repo will reach out to larger FOSS user base. See here if you want to weight the pros and cons. BTW  the app can co-exist on both the repositories :)


Draft PR to discuss code changes - DO NOT MERGE

What
See title
How to review
This is only open for TL and developer to discuss changes as part of sign off
Who can review
Dont review!

Closing draft, changes made against develop


Update Isabel's PPP

Update PPP for v1.4

Not relevant to be reviewed, merging PR and closing issue.


Share Sample uses a class that doens't exist on Nuget Package

I'm using the sample and adapting my app, but i noticed that the sample uses the class "StateItemKey" whereas the Nuget package library use a Struct with the same name, so basically the sample don't work if i just copy and paste.
var key = parameter as StateItemKey;

Yes, the Nuget does not have this capability yet. It will later today.


Pr10 type slot required migration

This PR addresses making the type slot required on every class instance: https://github.com/microbiomedata/berkeley-schema-fy24/pull/10
This PR is structured to occur BEFORE the class names change. E.g. the function calls the omics_processing_set to give it a type nmdc:DataGeneration.
Because some classes are used inlined, a dictionary was created for the slot that uses the inlined class as the range with the key as the slot and the value the class uri. Depending on when this migration takes place and if new data has been added that uses inlined slots that have not been used before, we may need to update the inlined dictionary with any new slots (this already happened to me while working on the code).
Also, because of the collection name discrepancies in mongo vs. the schema, running the make make-rdf command will not work on collections with differing names. I had to put a block of code in the mongo_dump_api_emph.py script after line 293 that looks like below to look for validation errors (sub whichever collection with a name discrepancy):

if available_vs_selected_collections['selected only']:
                if 'omics_processing_set' in selected_collections:
                    available_selected_collections.append('omics_processing_set')

We might want to consider running this after the name change, so testing using make-rdf is more straightforward. If we do want to run this after the collection name change migration, we need to change the names of the collections called in the code. Which should be relatively simple.

@turbomam If I run the make-rdf on just the biosample_set I am still getting that odd error about chem_administration not being an array (though it looks like an array to me). I'm not sure what is causing this.

Let's try retrieving some data with @mbthornton-lbl's get-study-related-records script and running that through the migrator. I can do that in about 90 minutes.

Hi @brynnz22, thanks for implementing the SchemaView approach @turbomam suggested in our meeting earlier today.
Like you mentioned to me this afternoon, this SchemaView approach takes a few seconds to run (per document, since everything is repeated for each document). The current migration framework requires everything to run for each document, so I don't see a way around this (e.g. I don't see a way we can create the SchemaView one time, up front, while still remaining within the current migration framework).
With that in mind, I'd prefer that you wait for the upcoming changes to the migration framework, before finalizing this migrator. Those changes are in an unmerged (unfinished) PR in nmdc-schema. Once they are in nmdc-schema, I think they'll eventually also be merged (across repos) into this fork.

Those changes will allow for the SchemaView to be generated one time

I have prototyped this in

https://github.com/microbiomedata/berkeley-schema-fy24/pull/69/files
but will defer to both of you regarding the best implementation for release

I have prototyped this in...

Thanks, @turbomam! I forgot all about the "constructor" (i.e. what I've been referring to as the constructor; but which I think is technically the "initializer" in Python; i.e. the __init__ method). Putting "run this once, before doing the agenda" code in there would work.
So, this statement I made yesterday is incorrect:

The current migration framework requires everything to run for each document. It doesn't allow us to create the SchemaView one time, up front, and reuse it for all documents.

@eecavanna and @turbomam I updated this using schemaView and Mark's code from the work he did in the nmdc_schema repo to get inferred inlined classes. I still had to do a tiny bit of hardcoding for types that have a prov prefix instead of nmdc (there was only one slot for this).
Also, I updated the collections so they align with the NEW collection names. So this migration should now come after the migration that we do to change the collection names.

@turbomam yes sounds good. I could not think of any other way of handling that, so I'd love to hear your thoughts about SchemaView()

@brynnz22  @eecavanna  have you tried to run this migration locally? we ran into some instances where the existing value for a type slot had a typo in the class name. If fixed the ones we found but am not sure if there are others and wanted to make sure that use case was covered by the migrator.

I haven't run any of the Berkeley schema migrators locally yet. Thanks for the heads up.


[fix][broker] Upgrade log4j2 version to 2.18.0

Motivation
Upgrade log4j2 version to 2.18.0
Documentation

[x] doc-not-needed

/pulsarbot run-failure-checks

/pulsarbot run-failure-checks

@liudezhi2098 Can you link to the Log4j CVE in the PR description?

Release notes
https://logging.apache.org/log4j/2.x/changes-report.html
@liudezhi2098 if you think that there is a high security risk then please do not send a PR but reach out to<EMAIL_ADDRESS>to discuss the problem.
Disclosing a security issue on GH means to disclose it to the public and put pressure on the whole community

Release notes https://logging.apache.org/log4j/2.x/changes-report.html

I think we should be a bit more specific here on which particular issue.

@liudezhi2098 if you think that there is a high security risk then please do not send a PR but reach out to<EMAIL_ADDRESS>to discuss the problem.
Disclosing a security issue on GH means to disclose it to the public and put pressure on the whole community

If there's already a security issue in Log4j it means the issue is already public. There's no need for secrecy at this point.

/pulsarbot run-failure-checks

Release notes https://logging.apache.org/log4j/2.x/changes-report.html
@liudezhi2098 if you think that there is a high security risk then please do not send a PR but reach out to<EMAIL_ADDRESS>to discuss the problem. Disclosing a security issue on GH means to disclose it to the public and put pressure on the whole community

Understood, thanks for the correction.

@liudezhi2098 Please provide a correct documentation label for your PR. Instructions see Pulsar Documentation Label Guide.

updated

/pulsarbot run-failure-checks

This test seem fails many times in this PR: EnvironmentBasedSecretsProviderTest.testConfigValidation
https://github.com/apache/pulsar/runs/7597134951?check_suite_focus=true
java.lang.AssertionError: expected [SecretValue] but found [null]
  	at org.testng.Assert.fail(Assert.java:99)
  	at org.testng.Assert.failNotEquals(Assert.java:1037)
  	at org.testng.Assert.assertEqualsImpl(Assert.java:140)
  	at org.testng.Assert.assertEquals(Assert.java:122)
  	at org.testng.Assert.assertEquals(Assert.java:629)
  	at org.testng.Assert.assertEquals(Assert.java:639)
  	at org.apache.pulsar.functions.secretsprovider.EnvironmentBasedSecretsProviderTest.testConfigValidation(EnvironmentBasedSecretsProviderTest.java:37)

/pulsarbot run-failure-checks

EnvironmentBasedSecretsProviderTest

It should have nothing to do with this PR.

/pulsarbot run-failure-checks

@RobertIndie I cannot reproduce locally. It seems the test should be correct when run alone.
Perhaps the unmodifiableMap gets set in different test cases. And I think for the specific test EnvironmentBasedSecretsProviderTest, we don't have to test System.getenv and just remove the test class.

I can reproduce steadily as the test command:
mvn -B -ntp -DskipSourceReleaseAssembly=true -DskipBuildDistribution=true -Dspotbugs.skip=true -Dlicense.skip=true -Dcheckstyle.skip=true -Drat.skip=true clean install -pl '!org.apache.pulsar:distribution,!org.apache.pulsar:pulsar-offloader-distribution,!org.apache.pulsar:pulsar-server-distribution,!org.apache.pulsar:pulsar-io-distribution,!org.apache.pulsar:pulsar-metadata,!org.apache.pulsar:pulsar-common' -PskipTestsForUnitGroupOther -DdisableIoMainProfile=true -DdisableSqlMainProfile=true -DskipIntegrationTests '-Dexclude=**/ManagedLedgerTest.java,
                     **/OffloadersCacheTest.java
                    **/PrimitiveSchemaTest.java,
                    BlobStoreManagedLedgerOffloaderTest.java'

Perhaps related to this change https://github.com/apache/logging-log4j2/commit/aaf13561e7dab88f379904461c75ed7a7ffef8d5#diff-76c7467e6213a4df2a9aaa05aa0d822f6cef6506a5bbbfdf447b2c1670c0bf4b

Well. I fixed this issue locally. Here is a patch you can make use of:
diff --git a/pom.xml b/pom.xml
index a6ce94fe734..2d093f1f1eb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -95,7 +95,8 @@ flexible messaging model and an intuitive client API.</description>
     <test.additional.args>
       --add-opens java.base/jdk.internal.loader=ALL-UNNAMED
       --add-opens java.base/java.lang=ALL-UNNAMED <!--Mockito-->
-      --add-opens java.base/java.io=ALL-UNNAMED <!--Bookkeeper NativeIO -->
+      --add-opens java.base/java.io=ALL-UNNAMED <!--Bookkeeper NativeIO-->
+      --add-opens java.base/java.util=ALL-UNNAMED <!--System Lambda-->
       --add-opens java.base/sun.net=ALL-UNNAMED <!--netty.DnsResolverUtil-->
       --add-opens java.management/sun.management=ALL-UNNAMED <!--JvmDefaultGCMetricsLogger-->
     </test.additional.args>
@@ -1294,6 +1295,13 @@ flexible messaging model and an intuitive client API.</description>
   </dependencyManagement>

   <dependencies>
+    <dependency>
+      <groupId>com.github.stefanbirkner</groupId>
+      <artifactId>system-lambda</artifactId>
+      <version>1.2.1</version>
+      <scope>test</scope>
+    </dependency>
+
     <!-- These dependencies are common to all the submodules -->
     <dependency>
       <groupId>org.apache.pulsar</groupId>
diff --git a/pulsar-functions/secrets/src/test/java/org/apache/pulsar/functions/secretsprovider/EnvironmentBasedSecretsProviderTest.java b/pulsar-functions/secrets/src/test/java/org/apache/pulsar/functions/secretsprovider/EnvironmentBasedSecretsProviderTest.java
index 8dbc880fa16..22ef2dd9e60 100644
--- a/pulsar-functions/secrets/src/test/java/org/apache/pulsar/functions/secretsprovider/EnvironmentBasedSecretsProviderTest.java
+++ b/pulsar-functions/secrets/src/test/java/org/apache/pulsar/functions/secretsprovider/EnvironmentBasedSecretsProviderTest.java
@@ -21,11 +21,7 @@ package org.apache.pulsar.functions.secretsprovider;

 import static org.testng.Assert.assertEquals;
 import static org.testng.Assert.assertNull;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.powermock.reflect.Whitebox;
+import com.github.stefanbirkner.systemlambda.SystemLambda;
 import org.testng.annotations.Test;

 public class EnvironmentBasedSecretsProviderTest {
@@ -33,22 +29,8 @@ public class EnvironmentBasedSecretsProviderTest {
     public void testConfigValidation() throws Exception {
         EnvironmentBasedSecretsProvider provider = new EnvironmentBasedSecretsProvider();
         assertNull(provider.provideSecret("mySecretName", "Ignored"));
-        injectEnvironmentVariable("mySecretName", "SecretValue");
-        assertEquals(provider.provideSecret("mySecretName", "Ignored"), "SecretValue");
-    }
-
-    private static void injectEnvironmentVariable(String key, String value)
-            throws Exception {
-
-        Class<?> processEnvironment = Class.forName("java.lang.ProcessEnvironment");
-        Map<String,String> unmodifiableMap = new HashMap<>(Whitebox
-                .getInternalState(processEnvironment, "theUnmodifiableEnvironment"));
-        unmodifiableMap.put(key, value);
-        Whitebox.setInternalState(processEnvironment, "theUnmodifiableEnvironment", unmodifiableMap);
-
-        Map<String,String> envMap = new HashMap<>(Whitebox
-                .getInternalState(processEnvironment, "theEnvironment"));
-        envMap.put(key, value);
-        Whitebox.setInternalState(processEnvironment, "theEnvironment", envMap);
+        SystemLambda.withEnvironmentVariable("mySecretName", "SecretValue").execute(() -> {
+            assertEquals(provider.provideSecret("mySecretName", "Ignored"), "SecretValue");
+        });
     }
 }

I guess the reason is that Whitebox failed to set the unmodifiableMap with log4j2 2.18.0 while I don't have an idea how it happens.
I don't like powermock as it's lack of maintenance. It seems all usage of powermock is Whitebox. We can get rid of it with simple reflections. This can be a separated issue, though.

The last CVE reported against Log4J was fixed in 2.17.1 - as an Apache Software Foundation Member I am able to look and there is nothing known to the Apache Logging security team. If you know of a vulnerability then you should report this privately to<EMAIL_ADDRESS>immediately so all of the thousands of projects dependent on Log4J 2 can benefit from a fix.

TestEnvVarResolverProperties can suffer the same issue, let me prepare a pull request onto this one..

/pulsarbot run-failure-checks

/pulsarbot run-failure-checks

testJavaLoggingFunction is really a pain.
I ever read the logic and it seems all good but perhaps resource consumptive so that we cannot receive messages in time, especially when CI is overwhelmed.

Move release/2.8.4 label to https://github.com/apache/pulsar/pull/16914.

Move release/2.7.5 label to https://github.com/apache/pulsar/pull/16942

@liudezhi2098  Would you like cherry-pick this PR to branch-2.9?

#16995 cherry-picked this PR. So remove the label.


Enhance UseSqlCe

https://github.com/aspnet/EntityFramework/issues/1238#issuecomment-138006622

Investigate enabling a SqlCeConnectionStringBuilder for sql ce 3.5


Add support for nullable types, map any as default type : fix #19, fix #31

Add support for nullable types.
For this, refactor mapTableDefinitionToType() : values in tableDefinition are now objects which store several properties, currently : udtName, nullable, tsType.
It allowed me to store nullable property, and it brings some extensibility to handle future properties for columns (eg comments).
Considering this brings support for nullable types, I had to enable strictNullChecks and then I ran into null type error in src/index.ts L37 so I also did some changes here.
NB : this PR is against master, there will be merge conflicts with #32
NB2 : once again, I was unable to make diff test succeed on my PC, although test/artifacts/osm.ts and test/example/osm.ts are identical in VS Code (perhaps a pb related to carriage return encoding ?)

ah CI failed because of 2 lines exceeding 120 characters, I forgot I have disabled this tslint rule on my PC 😞

@abenhamdine no problem :) I'll disable lint check on line length.. With type declaration on function arguments, it's very easy to go beyond the line limit


Adding GitHub action

As title, I think it's nice to add this feature to make this PHP package tested during GitHub workflows building.

That's an excellent idea @peter279k! Would you like to create a PR adding this .github workflow that would trigger composer run test or something like?

Thanks for your reply. Sure! I can create the PR to do that :).

Thanks for your reply. Sure! I can create the PR to do that :).

Awesome then! 🎉


[UI-Bug]: Profile cards break with copy/content

Description
UI is broken on the profile page
Supporting data

@vldkhh can you retest to see if this is still an issue?

@vldkhh this should be fixed

verified on prod