version: post-release bump

Signed-off-by: Lars Holm Nielsen<EMAIL_ADDRESS>

Coverage remained the same at 100.0% when pulling 2bf01b1347a5903f9e96ac3e190d188a106ad8df on lnielsen:postrel into 35dd697faa93ab738cc8354b5fc6fd61820fe675 on inveniosoftware:master.


Unable to save file 'C:\Users\G.I.JOE\AppData\Local\atom\app-1.7.4'

when i connected remote,it calls this reson,please help

I'm gonna close this as it is old, but updating your atom would be my guess at fixing that.


to compress executable

hi,
could you please try to compress executable using UPX?
now the installer executable has ~7 MB and I think it could be less...
best!

Compression by UPX decrease file size by ~40% but make binary was unsafe.
https://www.virustotal.com/gui/file/a875638764e8aa1a45d90782f7e14409bdf1ebac9160812c6a1923e04a31d306?nocache=1

Thanks.


Create parallel-execution.md

Provided guidance on how to parallelize the execution of prowler
Context
Parallelizing the execution could help users with really large accounts
Description
Added a new page to the documentation
License
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Could be nice to create a scripts folder in the repository and add these 2 scripts


@conda-forge-admin, please add user @nkorinek

@conda-forge-admin, please add user @nkorinek

Hi! This is the friendly automated conda-forge-webservice.
I just wanted to let you know that I added user @nkorinek in conda-forge/earthpy-feedstock#17.


Support pyright 376

#967 created fixes for pyright 1.1.374, but that was a buggy version of pyright, so pyright 1.1.376 has it right, so had to undo that PR
Upgraded my laptop to Windows 11 and had intermittent issues with the test_plotting.py tests, so copied over some code from the pandas repo to handle that

Had to lock numpy to 2.0.1 because with numpy 2.1, we are getting fails now, and as my luck goes, numpy 2.1 was released yesterday.

Thanks @Dr-Irv !


Can't initialize cluster due to 500 error on discovery.flynn.io

I am trying to create a cluster but the sudo flynn-host init --init-discovery command is failing with the following error:
12:51:46.471026 host.go:166: POST https://discovery.flynn.io/clusters: unexpected status 500
Seems like something is wrong with the server?

@tamiswa this is fixed now, thanks for reporting.

It worked. Thanks!


Update README.md

ReadMe: Add more information about listener uses.

Add information from https://github.com/nucleos/NucleosDompdfBundle/pull/544
Subject
Symfony listener and DomPDF hooks

Thanks @kl3sk


[bug] jUnit formatter returns time as int but should use float

Currently all my tests last time="0"

JUnit indeed supports float timestamps: https://github.com/testmoapp/junitxml?tab=readme-ov-file#structure


Missing file 'High_Quality_Cells_TPM_Information.csv' in Parameter_Estimation

Hi,
I'm trying to run the code in Parameter_Estimation folder. But it seems I can not find this file required in the code: 'C:\Users\kdzimmer\Documents\Langefeld group\Studies\Dissertation\scRNAseq\Pseudoreplication\Simulations\Empirical Distributions\High_Quality_Cells_TPM_Information.csv'
Could you please share this file? Or could you please explain how you generated this file?
Thanks!

@mingyudu I apologize the file is not present, it is bigger than github allows uploads for so I cannot upload it. If you install my R package you will be able to do these steps with the default data which is a part of the package itself: https://github.com/kdzimm/hierarchicell


Warning: request rejected because http work queue depth exceeded

Hi
I ran into a problem where the omnicored has been synced to 500,000 blocks and started getting this warning frequently: Warning: request rejected because http work queue depth exceeded.It hasn't happened before until the block has been synchronized to close to 500,000. Although it prompts me to increase  the rpcworkqueue setting to a higher value, I don't think it can slove it completely.  Because it seems to be due to the speed of omnicored to handled the http  request  is less than the speed of the client to send http request.Right? I am not sure this is due to something unreasonable in my configuration or machine, or for other reasons.
Specs:
8 cores, 32GB Ram, HDD
And my bitcoin.conf is as follows:
datadir=/mnt/volume_sgp1_02/data/omni_data
dbcache=10240
txindex=1
deprecatedrpc=addwitnessaddress
server=1
rest=1
rpcallowip=<IP_ADDRESS>
rpcport=8332
rpcuser=togreat
rpcpassword=xxx
rpcworkqueue=128
rpctimeout=30
omnidebug=tally
omnidebug=packets
omnidebug=pending

And I found a strange phenomenon. When I run the omnicore-cli "omni_getinfo" command at the beginning of the sync block, it takes 10 or 20 seconds to get the response, but now I have waited 15 minutes or more and still can't get the response. So confused.
I check the synchronization log, and I can't find something useful, just lots of these warnings.
How can i solve it? Does anyone know?
Thanks!

i found it cause by that i have other programs send http request to omnicore-cli concurrently, so the amount of http request exceeded the http work queue easily.


can not get swift 4.2

"Installing View2ViewTransition (1.1.0)"
but it's not a 4.2

Sorry I forgot to release new version😢
I will release new version after working hours.

@bizibizi Resolved 👍


.contains in SQLite

This app used to use Postgres and the fabulous active_record_extended gem.
Then we switched to using SQLite and replaced all active_record_extended helpers except for one .contains in https://github.com/railsbump/app/blob/main/app/services/compats/check.rb
Probably json_each is the way to go.

The app is now using Postgres again, so this issue is mute. 😄


[DOCS]  provide the author accounts in effective manner in readme

Description
Author profiles of LinkedIn, GitHub, and Twitter will be displayed in a beautiful manner. By creating buttons of these.
Screenshots
No response
Additional information
No response

Hey, Thanks but it not needed.. could you look out older issues may be you find a perfect fit and if author is inactive I'll aisign you.

SS ?


JsonPathMatchers not working with JacksonJsonProvider

I'm trying to use JsonPathMatchers with a Jackson JsonNode as input and it isn't working as I expect.  I believe I'm setting up the Jackson providers correctly as shown in the test code at the bottom.  Given the JSON below.
{
  "test-field-1":"test-value-1",
  "test-field-2":"test-value-2"
}

I'm expecting this assertion to pass where node is a JsonNode produced by Jackson.
assertThat( node, hasJsonPath( "$.test-field-1", equalTo( "test-value-1" ) ) );

But I get this error.
java.lang.AssertionError:
Expected: is json with json path "$['test-field-1']" evaluated to "test-value-1"
     but: json path "$['test-field-1']" was not found in <{"test-field-1":"test-value-1","test-field-2":"test-value-2"}>

Note that with JacksonJsonNodeJsonProvider it works although I have to compare against a TextNode, but with JacksonJsonProvider it doesn't appear to work at all.  Am I expecting too much or missing something?  The complete test is below.
import java.io.IOException;
import java.util.EnumSet;
import java.util.Set;

import com.fasterxml.jackson.core.JsonFactory;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.TextNode;
import com.jayway.jsonpath.Configuration;
import com.jayway.jsonpath.Option;
import com.jayway.jsonpath.spi.json.JacksonJsonNodeJsonProvider;
import com.jayway.jsonpath.spi.json.JacksonJsonProvider;
import com.jayway.jsonpath.spi.json.JsonProvider;
import com.jayway.jsonpath.spi.mapper.JacksonMappingProvider;
import com.jayway.jsonpath.spi.mapper.MappingProvider;
import org.junit.Test;

import static com.jayway.jsonpath.matchers.JsonPathMatchers.hasJsonPath;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;

public class JsonPathTest {

  public static void setupJacksonJsonNodeJsonProvider() {
    Configuration.setDefaults( new Configuration.Defaults() {
        @Override
        public JsonProvider jsonProvider() {
          return new JacksonJsonNodeJsonProvider();
        }

        @Override
        public MappingProvider mappingProvider() {
          return new JacksonMappingProvider();
        }

        @Override
        public Set<Option> options() {
          return EnumSet.noneOf( Option.class );
        }
      } );
  }

  public static void setupJacksonJsonProvider() {
    Configuration.setDefaults( new Configuration.Defaults() {
      @Override
      public JsonProvider jsonProvider() { return new JacksonJsonProvider();
      }

      @Override
      public MappingProvider mappingProvider() {
        return new JacksonMappingProvider();
      }

      @Override
      public Set<Option> options() {
        return EnumSet.noneOf( Option.class );
      }
    } );
  }

  @Test
  public void testAssertionsWithJsonNode() throws IOException {
    StringBuilder json = new StringBuilder();
    json.append( "{\n" );
    json.append( "\"test-field-1\":\"test-value-1\",\n" );
    json.append( "\"test-field-2\":\"test-value-2\"\n" );
    json.append( "}" );
    JsonFactory factory = new JsonFactory();
    ObjectMapper mapper = new ObjectMapper( factory );
    JsonNode node = mapper.readTree( json.toString() );
    assertThat( node.get( "test-field-1").asText(), is( "test-value-1" ) );
    setupJacksonJsonNodeJsonProvider();
    assertThat( node, hasJsonPath( "$.test-field-1", equalTo( TextNode.valueOf("test-value-1") ) ) );
    setupJacksonJsonProvider();
    // This assertion fails.
    assertThat( node, hasJsonPath( "$.test-field-1", equalTo( "test-value-1" ) ) );
  }

  @Test
  public void testAssertionsWithJsonString() throws IOException {
    StringBuilder json = new StringBuilder();
    json.append( "{\n" );
    json.append( "\"test-field-1\":\"test-value-1\",\n" );
    json.append( "\"test-field-2\":\"test-value-2\"\n" );
    json.append( "}" );
    setupJacksonJsonNodeJsonProvider();
    assertThat( json.toString(), hasJsonPath( "$.test-field-1", equalTo( TextNode.valueOf( "test-value-1" ) ) ) );
    setupJacksonJsonProvider();
    assertThat( json.toString(), hasJsonPath( "$.test-field-1", equalTo( "test-value-1" ) ) );
  }

}

So it seems you are mixing the different possible representations of json.
JsonPath parses json into a ReadContext. The ReadContext then keeps a reference to the inherent json representation of the provider you have chosen, e.g:

JsonNode/ObjectNode/TextNode/etc for JacksonJsonNodeJsonProvider
LinkedHashMap/LinkedList/etc for JacksonJsonProvider

All providers will be able to parse json as a String, into their corresponding representations. That is why the testAssertionsWithJsonString() is passing.
Providers will also be able to recognize their inherent model of json. That is why JacksonJsonNodeJsonProvider will be able to recognize JsonNode.
A similar setup for JacksonJsonProvider would be to parse into a Map (rather than a JsonNode). I.e:
Map jsonRepresentation = mapper.readValue(json.toString(), Map.class);
assertThat(jsonRepresentation, hasJsonPath("$.test-field-1", equalTo("test-value-1")));

Hope this clarifies?

No issue here.


Update Custom Serving Runtime tooltip with Openshift resource information

Closes: #1615
Description
This PR aims to update the Custom Serving Runtime tooltip with the openshift resource information. Also, this PR takes care of adding "kind" to  the k8s resource.

How Has This Been Tested?

Log in to Dashboard with a Dashboard Admin user
go to Settings > Serving runtimes
find a Custom Serving Runtime if present, otherwise create one
go hover the "Question Mark" icon
try searching the OpenShift resource by using the information in the tooltip message

Test Impact
Added unit test case for the utilities component.
Request review criteria:

Self checklist (all need to be checked):

[x] The developer has manually tested the changes and verified that the changes work
[x] Commits have been squashed into descriptive, self-contained units of work (e.g. 'WIP' and 'Implements feedback' style messages have been removed)
[x] Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
[x] The developer has added tests or explained why testing cannot be added (unit tests & storybook for related changes)

If you have UI changes:

[x] Included any necessary screenshots or gifs if it was a UI change.
[ ] Included tags to the UX team if it was a UI/UX change (find relevant UX in the SMEs section).

After the PR is posted & before it merges:

[ ] The developer has tested their solution on a cluster by using the image produced by the PR to main

/retest

/approve

@ppadti there are conflicts in k8sTypes, please rebase and solve those issues before merging.

Yes, I am doing it. But after rebase the tooltip is looking like this for custom serving runtime. Are we expecting to wrap the icon(ClipboardCopy) with name or is it okay to display the icon in next line.

@ppadti the copy to clipboard was added here: https://github.com/opendatahub-io/odh-dashboard/pull/1561
Ideally the button shouldn't wrap as there's clearly enough room on the same line here. But that can be logged as a separate issue.

/lgtm


Added support for LNBits "Invoices" extension

What's a DTO?

DTO is Data Transfer Object used to transfer data in remote API calls, not sure if 'pattern' is used in Python..
:
https://www.okta.com/identity-101/dto/
https://martinfowler.com/eaaCatalog/dataTransferObject.html
Found some usages in python:
https://dev.to/izabelakowal/some-ideas-on-how-to-implement-dtos-in-python-be3

Ok - understood on the DTO.
There is a deprecation warning that came up
/workspaces/pylnbits/tests/test_invoices.py:77: DeprecationWarning: There is no current event loop
  loop = asyncio.get_event_loop()```

Running the tests appear to work fine with 0.10.9 LNBits testnet instance. However I had to manually edit the invoice IDs, moving forward it might be better to write the unit tests where we don't hard code the invoice IDs but dynamically get them in the test script (I am aware the other tests also need to be updated and aren't doing this). It would make it easier for other users and/or reviewers to test the code.

here are the results I got:

Invoices:
[{'id': 'B9DwJiZXscZQWLLNjovW5W', 'wallet': '9af197b1e3964216881f689106f34f37', 'status': 'draft', 'currency': 'EUR', 'company_name': 'my_company_name10', 'first_name': 'my_first_name', 'last_name': 'my_last_name', 'email'<EMAIL_ADDRESS>'phone': 'my_phone_number', 'address': 'my_address', 'time':<PHONE_NUMBER>}]
Invoice:
{'id': 'B9DwJiZXscZQWLLNjovW5W', 'wallet': '9af197b1e3964216881f689106f34f37', 'status': 'draft', 'currency': 'EUR', 'company_name': 'my_company_name10', 'first_name': 'my_first_name', 'last_name': 'my_last_name', 'email'<EMAIL_ADDRESS>'phone': 'my_phone_number', 'address': 'my_address', 'time':<PHONE_NUMBER>, 'items': [{'id': 'Hy8cKgVuYMpW8xeQnKLAsT', 'invoice_id': 'B9DwJiZXscZQWLLNjovW5W', 'description': 'item1', 'amount': 500}, {'id': '8kxnaaPvE8TeJZtGayYiDC', 'invoice_id': 'B9DwJiZXscZQWLLNjovW5W', 'description': 'item2', 'amount': 300}], 'payments': 0}
Created invoice
{'id': 'nrJSrRmf7HfyjNP9Liidnw', 'wallet': '9af197b1e3964216881f689106f34f37', 'status': 'draft', 'currency': 'EUR', 'company_name': 'my_company_name10', 'first_name': 'my_first_name', 'last_name': 'my_last_name', 'email'<EMAIL_ADDRESS>'phone': 'my_phone_number', 'address': 'my_address', 'time':<PHONE_NUMBER>, 'items': [{'id': 'bDMnUs8iWhxJcdGSQLtNxn', 'invoice_id': 'nrJSrRmf7HfyjNP9Liidnw', 'description': 'item1', 'amount': 500}, {'id': 'YMAG7MMLFyAavyW8Q7SLQo', 'invoice_id': 'nrJSrRmf7HfyjNP9Liidnw', 'description': 'item2', 'amount': 300}]}
Updated invoice:
{'id': 'B9DwJiZXscZQWLLNjovW5W', 'wallet': '9af197b1e3964216881f689106f34f37', 'status': 'draft', 'currency': 'EUR', 'company_name': 'my_company_name10_1', 'first_name': 'my_first_name1', 'last_name': 'my_last_name1', 'email'<EMAIL_ADDRESS>'phone': 'my_phone_number1', 'address': 'my_address1', 'time':<PHONE_NUMBER>, 'items': []}
Invoice payment::
{'detail': 'Amount exceeds invoice due.'}
Invoice payment status:
{'paid': False, 'preimage': '0000000000000000000000000000000000000000000000000000000000000000'}
Delete Invoice result::
{"status":true}

Only issue appears to be the "Invoice payment" with "amount exceeds invoice due", if it was 8 euros worth of sats, approximately 24,912 sats.  However, there was more than that available balance to pay from the wallet.

One item to check is if you can pay the invoice as a draft, it might need to be set to open status.

There are a few pyproject.toml and requirements.txt updates, if you could kindly resolve, would appreciate it. @fenixlibertas

Thanks bitkarrot, I'll take a look

ct.toml and requirements.txt updates, if you could kindly resolve, would appreciate it. @fenixlibertas

Done

Invoice payment done.
InvoiceId is now more dynamic
Bug reported for Invoice item update action: https://github.com/lnbits/invoices/issues/8

OK Will take a look, thanks @fenixlibertas

@fenixlibertas ok i think this looks fine, only comment would be to add a note in the InvoiceDTO.py file and state what the DTO abbreviation is, in case someone doesn't know the reference.
I will run this code in the AM, and then merge it in

DTO is Data Transfer Object

@fenixlibertas There were a bunch of formatting issues, I just pushed straight to your branch and fixed them, You might want to look up PEP8 and get a good formatter for VSCode for future python.


Renamed distance parameter of ThreeDScene and ThreeDCamera to focal_distance

Overview: What does this pull request change?

This is a direct port from #1944 . My fork went missing.
Motivation and Explanation: Why and how do your changes improve the library?

Links to added or changed documentation pages

Further Information and Comments

Reviewer Checklist

[ ] The PR title is descriptive enough for the changelog, and the PR is labeled correctly
[ ] If applicable: newly added non-private functions and classes have a docstring including a short summary and a PARAMETERS section
[ ] If applicable: newly added functions and classes are tested

@behackl I opened a new one :)


esfit: allow non-linear x axis

esfit does not take user x axes. However, this would be useful esp. for magnetization data.

It only affects visualization.


Use a custom env var for log settings intead of default RUST_LOG

cargo fmt is very noisy when the env var RUST_LOG is set to debug. Developers set this variable for debugging their own code and almost never want to see debug output from rustfmt. Note that rustc and clippy do not output any debug logging, regardless of the RUST_LOG variable.
This change is to use a different variable, RUSTFMT_LOG instead, so that the rustfmt developers can still control  logging as before, but without user log settings affecting rustfmt.

Note that rustc and clippy do not output any debug logging, regardless of the RUST_LOG variable.

I dunno about clippy but rustc uses RUSTC_LOG and if you set that to debug when running rustc you'll get plenty of debug output :smile:
Definitely agreed with the suggested change in this PR though. Would you mind updating the debugging note in the Contributing file to reflect the change?

I dunno about clippy but rustc uses RUSTC_LOG and if you set that to debug when running rustc you'll get plenty of debug output :)

Yes, that's kind of what I meant. rustc uses RUSTC_LOG not RUST_LOG.
I'll update the doc too.

Please note that although this has been merged it will take a while to get released. Should probably land with rustfmt v1.4.23


Advice: Actor State in Convention

First, thank you for creating Thespian.  I've been working with it all week and it's great!
I have a working ActorSystem on a single host and am now working to move it to multiple systems in a convention.  The trouble that I'm having is shared state.  My main Actor (Calc) receives messages from an external source, processes them, updates its state, sends the updated state to a persistence Actor, and sends the updated state back to the external source.
My issues:

I want all clients across the convention to use the same Calc Actor, updating and using it's updated state.
I need the Calc Actor to be restarted on a new ActorSystem if the one it's on is shutdown.

I've been been checking out the docs and see Actors with state like this are less than ideal. I can't come up with an alternative.  Any advice on solutions or alternatives would be greatly appreciated.
Also, do you prefer these kinds of question to be submitted to the mailing list instead?

Glad you are enjoying Thespian!  We are enthusiastic about the potentials for Actor-based applications, so both suggestions and support for the effort are appreciated.
The mailing list might be a better place for these types of questions: more people are likely to see and respond, and the discussion is a little more searchable for future queries than a closed issue.
You might want to use the coordinator pattern.  This pattern needs to be described in the documentation somewhere, but basically you have a top-level coordinator actor whose job is to start the Calc actor and provide that address to all clients.  The coordinator's only responsibility is to create and provide the address of the current valid Calc actor on demand (and single-responsibility like this is another good Actor pattern).
def startup():
    asys = ActorSystem()
    asys.createActor(Coordinator, globalName='coordinator')

def client():
    asys = ActorSystem()
    calc = asys.ask(asys.createActor('coordinator', globalName='coordinator'), "get calc addr")
    result = asys.ask(calc, work())

class Coordinator(Actor):
    def __init__(self):
        self.calc_addr = None
    def receiveMessage(self, message, sender):
        if message == "get calc addr":
            if not self.calc_addr:
                self.calc_addr = self.createActor(Calc)
            return self.calc_addr
        elif isinstance(message, ChildActorExited):
            if message.childAddress == self.calc_addr:
                self.calc_addr = None

In the above (skeleton) code, the Coordinator simply returns the address of a Calc actor on demand, creating it if necessary.  If it is told that the Calc actor has exited, it will re-create one on the next request.
The reason for using the Coordinator as the registered globalName actor instead of just referring to the Calc directly via a globalName is that there is no other entity to tell (i.e. send a ChildActorExited to) when a "top-level" actor (in this case, the Coordinator) has exited and therefore cause it to be restarted.  By using a very simple top-level coordinator actor that is responsible for deploying the actual worker actors and keeping them around, the overall application gains a great deal of fault tolerance.
This clearly assumes that there is a "primary" system where the Coordinator lives and where the clients run to submit their requests.  You can use requirements to ensure that Calc actors are created on (less long-lived) worker systems that use the primary system as the convention leader.  If you need more tolerance for failures of the "primary" you could have a Coordinator running on each system and use an election-based system to determine which was the current managing Coordinator.  (This is another reason for using the Coordinator: adding complexity to the management does not affect the "business logic" in the Calc actor---separation of concerns and single responsibility patterns at work).
One thing I would suggest would be to consider whether or not your Calc actor must be a singleton.   A singleton is definitely a valid operational mode, but Actors lend themselves to easy parallelism... would your model support multiple Calc actors, with the coordination elsewhere (like your persistence actor, which is another good separation of concerns)?  This would allow you to scale your application by using the Troupe or having multiple operational Calc actors on different nodes.
And a final note regarding Thespian maturity:
Right now, globalName only applies to the current ActorSystem, and the customary configuration of ActorSystems is a star pattern around that central or "primary" system.  Future plans for Thespian include having the ability for multiple or self-electing convention leaders that would change the star topology into more of a mesh, and such a change would probably also involve making the globalName applicable inter-system instead of the current intra-system application.
Regards,
Kevin Quick

Thanks for the advice.  I'm kicking the Coordinator idea around in my head.
My concern is that when the "primary" convention leader system with the Coordination actor needs to be taken offline, the whole system will fail because the other actor system can't contact the Coordinator.  Is this always the case when using a convention, the convention leader must alway be online?
I can't make the Calc run in parallel because the next calculation is dependent on the previous calculated state.
I don't suppose there is a way to broadcast the latest calculated state to a CurrentState actor in all systems?

At the underlying thespian level, yes, the convention leader must always be present for the other convention members to function.  That's the reference to the star configuration I made in the last post, and there is a plan to implement a leader election system in the future to remove this central dependency.
From the Coordinator perspective, you can enhance the coordinators communicating on the other systems to share information and handle the scenario when one leaves; you would need to implement your own leader election process for that.  There is no broadcast, so you would need to pass Coordinator addresses to each other and perform explicit individual notifications.
To get around the thespian single-leader constraint above, you can use the preRegister/deRegister calls from the Coordinator to re-establish communications.  This is going to get complicated though.  The centralized convention leader has been the typical configuration that has been used in the past, and removing this constraint is definitely something that is needed; you are pushing the boundary of current implementation and if it's possible to live with the single leader configuration for now and wait for the Thespian enhancement that might be your better option.
If you want to get involved in enhancing Thespian itself in this area, that would be welcomed, but in this situation this is already on the roadmap so it will still happen even if you don't have the bandwidth to get personally involved (and probably sooner now that there is demand).
-Kevin Quick

From: Kevin Colyar<EMAIL_ADDRESS>Sent: Friday, September 23, 2016 9:36:38 AM
To: godaddy/Thespian
Cc: Kevin W Quick; Comment
Subject: Re: [godaddy/Thespian] Advice: Actor State in Convention (#20)
Thanks for the advice. I'm kicking the Coordinator idea around in my head.
My concern is that when the "primary" convention leader system with the Coordination actor needs to be taken offline, the whole system will fail because the other actor system can't contact the Coordinator. Is this always the case when using a convention, the convention leader must alway be online?
I can't make the Calc run in parallel because the next calculation is dependent on the previous calculated state.
I don't suppose there is a way to broadcast the latest calculated state to a CurrentState actor in all systems?

You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/godaddy/Thespian/issues/20#issuecomment-249240939, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AFX0bhI3rO2P1KfWU9p_rqzl0TC_rjjmks5qtAAWgaJpZM4KElQy.

I have created https://github.com/godaddy/Thespian/issues/21 to specifically address the limitation of a single convention leader; feel free to upvote via a thumbs-up reaction to indicate level of interest or need for this.

I'd love to contribute to Thespian any way I can.  I was looking into Raft,
and I was wondering, at least for the time being, if using something like
PySyncObj https://github.com/bakwc/PySyncObj would solve my state issue
until a mesh convention is implemented.
I could hold a synchronized state outside of my ActorSystem in the clients
and use Thespian for parallel calculations, persistence, etc.  Thoughts?
On Fri, Sep 23, 2016 at 10:59 AM Kevin Quick<EMAIL_ADDRESS>wrote:

At the underlying thespian level, yes, the convention leader must always
be present for the other convention members to function. That's the
reference to the star configuration I made in the last post, and there is a
plan to implement a leader election system in the future to remove this
central dependency.
From the Coordinator perspective, you can enhance the coordinators
communicating on the other systems to share information and handle the
scenario when one leaves; you would need to implement your own leader
election process for that. There is no broadcast, so you would need to pass
Coordinator addresses to each other and perform explicit individual
notifications.
To get around the thespian single-leader constraint above, you can use the
preRegister/deRegister calls from the Coordinator to re-establish
communications. This is going to get complicated though. The centralized
convention leader has been the typical configuration that has been used in
the past, and removing this constraint is definitely something that is
needed; you are pushing the boundary of current implementation and if it's
possible to live with the single leader configuration for now and wait for
the Thespian enhancement that might be your better option.
If you want to get involved in enhancing Thespian itself in this area,
that would be welcomed, but in this situation this is already on the
roadmap so it will still happen even if you don't have the bandwidth to get
personally involved (and probably sooner now that there is demand).
-Kevin Quick

From: Kevin Colyar<EMAIL_ADDRESS>Sent: Friday, September 23, 2016 9:36:38 AM
To: godaddy/Thespian
Cc: Kevin W Quick; Comment
Subject: Re: [godaddy/Thespian] Advice: Actor State in Convention (#20)
Thanks for the advice. I'm kicking the Coordinator idea around in my head.
My concern is that when the "primary" convention leader system with the
Coordination actor needs to be taken offline, the whole system will fail
because the other actor system can't contact the Coordinator. Is this
always the case when using a convention, the convention leader must alway
be online?
I can't make the Calc run in parallel because the next calculation is
dependent on the previous calculated state.
I don't suppose there is a way to broadcast the latest calculated state to
a CurrentState actor in all systems?

You are receiving this because you commented.
Reply to this email directly, view it on GitHub<
https://github.com/godaddy/Thespian/issues/20#issuecomment-249240939>, or
mute the thread<
https://github.com/notifications/unsubscribe-auth/AFX0bhI3rO2P1KfWU9p_rqzl0TC_rjjmks5qtAAWgaJpZM4KElQy

.

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/godaddy/Thespian/issues/20#issuecomment-249260838,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AABDhe13StcOROjlxPUGml0YE-mHJD9sks5qtBNlgaJpZM4KElQy
.

That sounds like a reasonable approach.  Obviously you'd have duplicated addressing/configuration between Thespian and PySyncObj (thanks for the interesting link there...) but that shouldn't be too hard to manage until Thespian supports mesh.
Feel free to reach out to me directly to coordinate any Thespian work you want to get involved in (and thanks!).
-Kevin Quick

From: Kevin Colyar<EMAIL_ADDRESS>Sent: Friday, September 23, 2016 1:32:04 PM
To: godaddy/Thespian
Cc: Kevin W Quick; Comment
Subject: Re: [godaddy/Thespian] Advice: Actor State in Convention (#20)
I'd love to contribute to Thespian any way I can. I was looking into Raft,
and I was wondering, at least for the time being, if using something like
PySyncObj https://github.com/bakwc/PySyncObj would solve my state issue
until a mesh convention is implemented.
I could hold a synchronized state outside of my ActorSystem in the clients
and use Thespian for parallel calculations, persistence, etc. Thoughts?
On Fri, Sep 23, 2016 at 10:59 AM Kevin Quick<EMAIL_ADDRESS>wrote:

At the underlying thespian level, yes, the convention leader must always
be present for the other convention members to function. That's the
reference to the star configuration I made in the last post, and there is a
plan to implement a leader election system in the future to remove this
central dependency.
From the Coordinator perspective, you can enhance the coordinators
communicating on the other systems to share information and handle the
scenario when one leaves; you would need to implement your own leader
election process for that. There is no broadcast, so you would need to pass
Coordinator addresses to each other and perform explicit individual
notifications.
To get around the thespian single-leader constraint above, you can use the
preRegister/deRegister calls from the Coordinator to re-establish
communications. This is going to get complicated though. The centralized
convention leader has been the typical configuration that has been used in
the past, and removing this constraint is definitely something that is
needed; you are pushing the boundary of current implementation and if it's
possible to live with the single leader configuration for now and wait for
the Thespian enhancement that might be your better option.
If you want to get involved in enhancing Thespian itself in this area,
that would be welcomed, but in this situation this is already on the
roadmap so it will still happen even if you don't have the bandwidth to get
personally involved (and probably sooner now that there is demand).
-Kevin Quick

From: Kevin Colyar<EMAIL_ADDRESS>Sent: Friday, September 23, 2016 9:36:38 AM
To: godaddy/Thespian
Cc: Kevin W Quick; Comment
Subject: Re: [godaddy/Thespian] Advice: Actor State in Convention (#20)
Thanks for the advice. I'm kicking the Coordinator idea around in my head.
My concern is that when the "primary" convention leader system with the
Coordination actor needs to be taken offline, the whole system will fail
because the other actor system can't contact the Coordinator. Is this
always the case when using a convention, the convention leader must alway
be online?
I can't make the Calc run in parallel because the next calculation is
dependent on the previous calculated state.
I don't suppose there is a way to broadcast the latest calculated state to
a CurrentState actor in all systems?

You are receiving this because you commented.
Reply to this email directly, view it on GitHub<
https://github.com/godaddy/Thespian/issues/20#issuecomment-249240939>, or
mute the thread<
https://github.com/notifications/unsubscribe-auth/AFX0bhI3rO2P1KfWU9p_rqzl0TC_rjjmks5qtAAWgaJpZM4KElQy

.

You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/godaddy/Thespian/issues/20#issuecomment-249260838,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AABDhe13StcOROjlxPUGml0YE-mHJD9sks5qtBNlgaJpZM4KElQy
.

You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://github.com/godaddy/Thespian/issues/20#issuecomment-249295154, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AFX0bgIt--EuLyI-_L_suEEsrxqul8yQks5qtDdEgaJpZM4KElQy.

Hi Kevin,
I've got Issue #21 open for addressing other convention topologies; with that issue still open, are you OK with closing this issue thread?

Sure, I'll follow the conversation over there.


Try m1 action runner

We shall see...

Confirmed only available on paid organization-level plans (teams or enterprise)

Good that you tested my clam  : ) (I mean it!)


[1.3.1-1.16.5] NoClassDefFoundError at envyful/battle/tower/shade/javax/script/ScriptEngine

Crash with Pixelmon 9.1.10 and 1.3.1 Battle Tower
Log: https://paste.helpch.at/xovegiyale

FIXED https://github.com/EnvyWare/EnvyBattleTower/releases/download/1.3.3/EnvyBattleTower-Forge-1.3.3-1.16.5.jar


Add 5.0.27 changelog.

@a-palchikov @knisbet I have added 5.4.0 changelog here as well and reformatted the releases table a bit.