Missing AsteriskQueueMember.Location in asterisk 13.19.0

Hi guys.
Recently I download Asterisk-Java 2.0.2 release and tested it, that is a great thing in my life. I tested with asterisk 11.0, it works well. But it shows an issue when I make test with asterisk 13.19.0. That is I can't get AsteriskQueueMember.Location (it's emty in asterisk 13, but it shows SIP/XXXX, LOCAL/XXXX...in asterisk 11). I hope you will find out the problem and update back to me. I'll make the test again.
Thank for your sharing.

I got some info:
WARNING: Unsupported protocol version 'Asterisk Call Manager/2.10.3'. Use at your own risk
WARNING: Unable to set property 'pausedreason' to '' on org.asteriskjava.manager.event.QueueMemberAddedEvent: no setter. Please report at https://github.com/asterisk-java/asterisk-java/issues
May 07, 2018 4:44:36 PM org.asteriskjava.manager.internal.AbstractBuilder setAttributes
WARNING: Unable to set property 'incall' to '0' on org.asteriskjava.manager.event.QueueMemberAddedEvent: no setter. Please report at https://github.com/asterisk-java/asterisk-java/issues
May 07, 2018 4:44:36 PM org.asteriskjava.manager.internal.AbstractBuilder setAttributes
WARNING: Unable to set property 'incall' to '0' on org.asteriskjava.manager.event.QueueMemberAddedEvent: no setter. Please report at https://github.com/asterisk-java/asterisk-java/issues
May 07, 2018 4:44:36 PM org.asteriskjava.live.internal.AsteriskQueueImpl addMember
INFO: Adding new member to the queue KENH_HELP: AsteriskQueueMember[location='null'state='DEVICE_NOT_INUSE'paused='false'membership='dynamic'queue='KENH_HELP'callsTaken='0'lastCall='0'systemHashcode=1211441282]
May 07, 2018 4:42:26 PM org.asteriskjava.live.internal.AsteriskQueueImpl getMemberByLocation
SEVERE: Requested member at location null not found!
May 07, 2018 4:42:26 PM org.asteriskjava.live.internal.QueueManager handleQueueMemberPausedEvent
SEVERE: Ignored QueueMemberPausedEvent for unknown member null
Hardly to know how does API work. I made test, sometime it got the location, sometime it returns null value, in my opinion may be some member events will set location to null, but I can't find it out. Sorry.

I have the same problem. Asterisk version: 13.22.0,
I have a handler that handles the QueueMemberEvent, and the event return location = null. And there are exceptions:
- {AsteriskQueueImpl}: Requested member at location null not found!
- {QueueManager}: Ignored QueueMemberStatusEvent for unknown member null
- {QueueManager}: Ignored QueueMemberRemovedEvent for unknown agent name: <correct_name> location: null queue: <correct_queue>

Especially, the context and extension is null too, but StateInterface is correct (example: hint:1111@ext-local)
May be there is a way to solve this issue? Thanks.

You are going to have to look at the raw event that asterisk is pushing
up and see how it is being converted.
On 17/08/18 20:39, Aleksandr Savinov wrote:

I have the same problem. Asterisk version: 13.22.0,
I have a handler that handles the QueueMemberEvent, and the event
return location = null. And there are exceptions:
|- {AsteriskQueueImpl}: Requested member at location null not found! -
{QueueManager}: Ignored QueueMemberStatusEvent for unknown member null

{QueueManager}: Ignored QueueMemberRemovedEvent for unknown agent
name: <correct_name> location: null queue: <correct_queue> |

Especially, the context and extension is null too, but StateInterface
is correct (example: hint:1111@ext-local)
May be there is a way to solve this issue? Thanks.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/asterisk-java/asterisk-java/issues/246#issuecomment-413827078,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA29OCbuyrJWhjsyuwzJgMalmLACJCxXks5uRp1hgaJpZM4TzfPh.

I mean i do not understand, what "Location" is field? And why do many QueueMemberEvent and same classes check this field, but the setter for this field is not called?
I have an application with own ManagerEventListener implementation. The listener handle some event in QmemeMemberEvent scope (for example adding, removeng, change state in queue, set paused and so on).
When the application started - there is the first call AsteriskServer.getQueues() method and its returned correct data (especially queue members with correct Location fields).
Then the Asterisk generating some QueueMemberEvent (for example, member removed from queue). And in event  the value of Location is null. Also, if i check the call structure - the head event does not have location field value, just null (method: ManagerConnectionImpl.fireEvent(event)).
P.S. The field Interface has a target value of Location (if i understand right). But cheking of member in queue in method AsteriskQueueMemberImpl getMemberByLocation(String location) is referenced on the field Location, but the Location field does not settied before.

I just try to add a setLocation(interface) in setInterface(interface) methods for some QueueMemberEvent classes (, , , ).
Example:
public void setInterface(String _interface)
{
	this._interface = _interface;
	// Manual changed
	setLocation(_interface);
}

Not sure that this the right way, but don't have exceptions yet.

Given that you have just created an infinite recursion, that is certainly NOT the correct way ;)

I will try to describe the whole sequence of actions that I perform.
Task: Process queue events, such as adding, deleting, pausing.
Which steps did I take?

Using this library, I connect to Asterisk. Example:

asteriskServer = new DefaultAsteriskServer(hostname, port, username, password);
asteriskServer.initialize();

I install my own implementation of ManagerEventListener.

asteriskServer.getManagerConnection().addEventListener(eventListener);

In the implementation of ManagerEventListener I'll show an example of handling the event of adding a member to the queue:
@Override
public void onManagerEvent(ManagerEvent managerEvent)
{
	if (managerEvent instanceof QueueMemberAddedEvent)
		handleEvent((QueueMemberAddedEvent) managerEvent);
}

private void handleEvent(QueueMemberAddedEvent event)
{
	// Just for example show some fields
	System.out.println("---QueueMemberAddedEvent---");
	System.out.println("Exten: " + event.getExten());
	System.out.println("Member name: " + event.getMemberName());
	System.out.println("Location: " + event.getLocation());
	System.out.println("Interface: " + event.getInterface());
	System.out.println("Queue: " + event.getQueue());
	System.out.println("Status: " + QueueMemberState.valueOf(event.getStatus()));
	System.out.println("StateInterface: " + event.getStateinterface());
	if (event.getTimestamp() != null)
		System.out.println("Timestamp: " + new Date(event.getTimestamp().longValue()));
	System.out.println("Interface: " + event.getInterface());
	System.out.println("Membership: " + event.getMembership());
}

As a result, I have Exten = null, Location = null. And due to the fact that Location = null, I have some exceptions (https://github.com/asterisk-java/asterisk-java/issues/246#issuecomment-413827078), but not always (sometimes they go out, sometimes. For example, now I check - exceptions do not work).
Output result:
--- QueueMemberAddedEvent ---
Exten: null
Member name: a
Location: null
Interface: Local / 1111 @ from-queue / n
Queue: 10001
Status: DEVICE_INUSE
StateInterface: hint: 1111 @ ext-local
Interface: Local / 1111 @ from-queue / n
Membership: dynamic

At the moment I've added the setter in the example above, but as you suggested, this is a completely wrong way. At the moment it's working for me, but I'd like to do it right (I've been doing Asterisk relatively recently, and Java in general).
P.S. Forgive me for my grammar and generally for the language :(

Since asterisk12 they renamed some queue event fields without proper documentation.
Only the QueueMember event   has the field location.
For all other Queue events the field was renamed to interface !
I will working on a patch for this problem

Please look at my PR #289 with fixes for Queue Event Field Handling

Well thank you. But, at the moment I want to use the level of abstraction live. However, when working with queue members and there are some problems. For example, for AsteriskQueueMember, the location field is still used, and this is an important field by which at this level of abstraction it is possible to determine which particular queue member you have to work with. For example, I used my AsteriskQueueListener implementation. At the event of adding a member (onMemberAdded()) I get information about the added queue member, but there is an empty value for location. Here is an example of my logger:
2019-04-18 12:48:54.752 [INFO] : com.prime.asterisk.core.manager.event.listener.live.AMIAsteriskQueueListener.onMemberAdded()[line:85] - Added queue member AsteriskQueueMember[location='null'state='DEVICE_INUSE'paused='false'membership='dynamic'queue='10007'callsTaken='0'lastCall='0'systemHashcode=463097527]
Given your previous posts, in the AsteriskQueueMember implementation, you should also change the location to _interface.
P.S. At the moment, the ManagerEvent event handling mechanism is used, but the implementation with the help of live objects actually looks more attractive, but due to these problems I cannot completely restructure myself for this mechanism. By the way, if you handle ManagerEvent events, then you can get there in addition to everything memberName, but I did not see this field in the live object.

Made minor edits (just added an iface field to some objects related to AsteriskQueueMember). In general, when the event associated with the queue member is generated, the added field (iface) has a value (while location = null). True, there was another subtlety:
AsteriskQueueListener as well as PropertyChangeListener for AsteriskQueueMember for some reason does not generate events for already existing objects. That is, when I connect to Asterisk, and then I get a list of queues (along with their members), I add the AsteriskQueueListener implementation to AsteriskQueue, and PropertyChangeListener for the corresponding members, then no event generation takes place. Events are generated only when creating a new queue member. If, for example, an existing queue member goes into pause, then QueueMemberStatusEvent events will not be generated. However, if it enters the queue, subsequent events (including a QueueMemberStatusEvent) are generated. I do not understand why.

You are right,
i will add this next week to the patch.
peter

For information, I will give you some of your solutions.
Used sources of your library 2.0.4
Made some changes:

Added an iface field for most events associated with a queue member
In places where the location field is used (roughly speaking, getLocation() is called) changed to added iface (replaced call to getInterface())
In addition, I had to make the logic of work so that when starting my application using your library, I had to get an up-to-date list of queues and queue members. However, due to the fact that in paragraph 2 I changed the code to the getInterface() method call, the asterisk did not return me the list of queue members. I tried to understand what it is connected with and came to the conclusion that the problem is connected with the use of both: location (as first) and interface (as second and next). The fact is that during the initialization of the implementation ManagerConnection asterisk fills the location field ... and later on it generates events using the interface (iface) field. So I had to change the addMember(...) method in AsteriskQueueMemberImpl a bit:

	void addMember(AsteriskQueueMemberImpl member)
	{
		synchronized (members)
		{
			// Check if member already exists
			if (members.containsValue(member))
			{
				return;
			}
			// If not, add the new member.
			logger.info("Adding new member to the queue " + getName() + ": " + member.toString());
//            members.put(member.getLocation(), member);
			if (member.getInterface() != null)
			{
				members.put(member.getInterface(), member);
			}
			else if (member.getLocation() != null)
			{
				members.put(member.getLocation(), member);
			}
			else
			{
				logger.warn("Cannot add member with incorrect interface/location: " + member);
			}
		}

		fireMemberAdded(member);
	}

Thus, in priority, we use getInterface(), but if it is empty, we try to get it with getLocation().
Of course, these decisions are essentially temporary.
I attach the archive with the source code, where I made some edits, please see (unfortunately I can not provide just a link to the project, because there is no public access to it). Maybe it will help somehow.
P.S. Sorry for my language)
asterisk-java-master.zip

So, digged a little further through asterisk change information.
In asterisk 12 : "The majority of Queue events have had the Location field renamed to the Interface field.
". Well this fits to my findings, nearly all Queue Events have this field, despite of one.
So i will change my patch to match for asterisk 12 and will incorporate it to asterisk-java-3.
Will this be ok ?

Yes of course. I hope it will be so good if I understand you correctly. Thank)


Greek alphabets like Θ can't be recognized

Environment

Tesseract Version: 4.0
Commit Number:
Platform: mac

Current Behavior:
Command:
tesseract ~/Desktop/detector_sample_data-1.jpg ~/Desktop/result -l eng+ell+grc
Expected Behavior:
Greece National ID Card: Θ-420001 which has greek alphabets should be recognized, but 0-420001 is recognized
Suggested Fix:
for a english document which has few greek alphabets, the greek alphabets αβγδεζηθικλμνξοπρστυφχψωΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩABEZHIKMNOPTYX should be recognized in the right way

This is not a software issue but more or less normal for OCR.
You can try using -c load_number_dawg=0 and see whether that helps.
Please use the Tesseract user forum for more questions.

With the lstm engine, letter sequences that were not learnt during training have low chance to be recognized.

Yes, training some Greece National ID Card (~100 or more) with tesstrain would help to get better results.

It's strange Θ-420001 can't be recognized，however， for the below sentense which contains greek alphabets can be recognized.
αβγδεζηθικλμνξοπρστυφχψωΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩABEZHIKMNOPTYX.
How can I solve this issue to able to recognize Θ-420001 ?

@stweil @amitdo I have retrained a eng_finetuned.traineddata to recognize the greek alphabets. When i test in my local tesseract environment(4.1.1), I find it works. however, for my docker environment, it has an error:
'Error opening data file /usr/share/tesseract-ocr/4.00/tessdata/eng_finetuned.traineddata Please make sure the TESSDATA_PREFIX environment variable is set to your "tessdata" directory. Failed loading language 'eng_finetuned' Tesseract couldn't load any languages! Could not initialize tesseract.'
in my dockerFile:
COPY ./tesseract/eng_finetuned.traineddata /usr/share/tesseract-ocr/4.00/tessdata/eng_finetuned.traineddata
COPY ./tesseract/ell.traineddata /usr/share/tesseract-ocr/4.00/tessdata/ell.traineddata
I copies my fine-tuned data and together with ell.traineddata downloaded from tesseract,
the error occurs when I call
"pytesseract.image_to_string(image, lang="eng_finetuned")",
No error however is found when i call
"pytesseract.image_to_string(image, lang="ell")", the same way I copy the traineddata.
could you please help to point out the issue
PS: Docker tesseract version is 4.0.0, configured in Dockerfile:
RUN apt-get update && apt-get install -y build-essential tesseract-ocr poppler-utils
RUN apt-get install ffmpeg libsm6 libxext6  -y

I have a question same as described in the below issue
https://github.com/Shreeshrii/tess4training/issues/15
@stweil  @amitdo Could you please point out why the performance decrease after I fine tune the english model.


[Feature Request] Allow loading a file from classpath in spec definition

Expected behavior
In a Java project allow to define a special parameter classpath to load files from classpath.
Background
In java projects (mainly in maven/gradle projects), the structure of resources that are used in a project are defined (src/test/resources). It would be beneficial to allow the path to a resource in the spec instead of given the full path.
So instead of  <file:src/test/resources/myfile.txt> something like <classpath:myfile.txt>

This can be considered while implementing https://github.com/getgauge/gauge/issues/94


Cannot download GWT developer plugin

It goes to a 404 page when I click on the GWT download button.

Thanks for the report.  What OS, browser and browser version?
The GWT plugin stopped being supported a while ago for many brwosers and this is still using an old version of GWT.  The project needs to be updated to a more recent version of GWT to get Super Dev Mode which doesn't require the GWT Developer Plugin but I haven't gotten around to it yet.

I updated the application to use GWT 2.8.0 which doesn't rely on the developer plugin.  The branch with these changes was merged into the master branch in 661af90

Included in v0.2 release


Delete linkedin-learning-provisioning-tutorial.md

ISV/Partner LinkedIn Learning has changed its SCIM functionality thus making this document incompliant. The document needs to be removed to avoid conflict.

@twimmers,
Can you review the proposed changes? Note that if this article is deleted, a TOC adjustment is necessary, and a redirect needs to be implemented. It might be best to do this all in the private repo.
IMPORTANT: When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

#sign-off

@udhaymahajan: I'm sorry - only the author of this article, @twimmers, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.

@twimmers, in order to merge this, we need a redirect and a TOC change. Can you add those, here or in the private repo? It has to be done in the same PR. Thanks.

#hold-off  @twimmers, after those items are taken care of, please sign off again.

@jborsecnik
https://github.com/MicrosoftDocs/azure-docs-pr/pull/202453
TOC file has been updated.

@udhaymahajan, @twimmers
Thanks! After a redirect is added for the deleted file, #sign-off again to let us know this PR is ready to merge.

@Court72
Can you please provide an explanation or example of the referred redirect?

@Court72 Can you please provide an explanation or example of the referred redirect?

Can you see this page?  https://review.docs.microsoft.com/en-us/help/contribute/redirect-articles?branch=main


Business Match API

This adds the Business Match API as requested in #6
I didn't pull request it as the match API didn't seem to be very effective for me in my testing, though it could have simply been the businesses I was trying to match on since the endpoint is beta.

Upon a quick inspection, this looks solid. Would you mind adding a bullet at the bottom of README.md indicating that we now support this endpoint?

You got it!
The examples in the examples.py file aren't great as I haven't actually gotten a reasonable response out of the API just yet. I tend to get no results with best and two sometimes unrelated results with lookup.

Awesome! I haven't had a chance to actually pull this down and test it yet, but I'll do that shortly (most likely tomorrow). Would you mind making that .get() change? I think that's the last thing I see offhand.

Oh, another 2 small changes:

Would you mind adding an entry to CHANGES.md describing this change? Let's up the version to 2.1.0.
Would you mind updating setup.py to specify version 2.1.0?

Version bumped!

What's the .get() change you requested? I don't see any code comments.

Ah, sorry! I was using GitHub's code review feature and didn't hit "submit". Do you see the comment on .get() now?

I've made the requested changes!

Looks great to me! Merging. Thanks!


Make status bar label fonts updateable

The labels of bottom status bar(of code editor) cannot be updated(when editor fonts changed via Editor settings), without editor restarts, this commit fix it.

very tolerant and nice commnuity imo. run by great leadership skills, you should be proud juan and akien for leading this great floss project!

CC @djrm @volzhs @toger5

Its working I assure you :)


Wrong Chrome version bundled in cypress/included:6.0.0

The Chrome version bundled in cypress/included:6.0.0 docker images is 83, but should be at least 85>, i.e. 87
The file cypress-docker-images/included/6.0.0/build.sh seems to include the old Chrome version (the autogenerated file by npm run add:included -- 6.0.0 cypress/browsers:node12.18.3-chrome83-ff77)

Yeah, the browser image we have built the cypress/included:6.0.0 has older browsers, but I think that's ok. The next included image hopefully would have newer browser images.

I was forced to downgrade back to 5.6.0 temporarily because cypress/included:5.6.0 has Chrome version 85, my expectation was that cypress/included:6.0.0 should have the same version at least. However in release notes for 6.0.0, there is a mention of version 87 – I guess they should be kept in sync.

Fixed in 6.0.1. Thnx :)


Pluralize negative values

Currently pluralize('test', -1) returns tests but the singular form would make more sense. Use cases include point, coin,  etc. What do you think?

My rule is basically pluralizing when number is not 1
Check this out!
https://meta.stackexchange.com/questions/165244/is-negative-one-plural
pluralize('test', 1)
// => test
pluralize('test', 0.5)
// => tests
pluralize('test', -0.5)
// => tests
pluralize('test', -1)
// => tests

I also think this should be customized by each use in your application.
Just an example here 👇
import pluralizePack from 'thisPackage';

export function pluralize(singular, count, showCount = false) {
  const word = String(singular);
  if (count === -1 && singular === 'test') {
    return word;
  }
  if (count === -1 && singular === 'point') {
    return word;
  }
        .
        .
        .
  return pluralizePack(singular, count, showCount);
}

It seems reasonable to leave it how it is today. I'd recommend writing your own function for your behaviour today, it's pretty small based on https://github.com/blakeembrey/pluralize/blob/3da4a24ab94790b239545c6eb21f0f63cdc0ed09/pluralize.js#L165-L168.

Yes, it's easy to write a wrapper but I wanted to point out a case that wasn't being handled by the module but probably should. The answer seemed so obvious to me that it didn't even occur to me to google it. It indeed seems like there isn't a strong concensus on whether -1 should be singularized and as such it makes sense to leave it as is.

@havgry I agree. I would have also though that -1 was singular before reading. But since it's a little subjective and the existing behaviour is already there, figured it's reasonable to keep current expectations. Maybe we can add a note on the README?


Add Malix programming language

[x] I followed the contributing guidelines: https://github.com/github/explore/blob/master/CONTRIBUTING.md
[x] I have no affiliation with the project I am suggesting (as a maintainer, creator, contractor, or employee).

Which change are you proposing?

[x] Suggesting edits to an existing topic or collection
[ ] Curating a new topic or collection

Editing an existing topic or collection
I'm suggesting these edits to an existing topic or collection:

[ ] Image (and my file is *.png, square, dimensions 288x288)
[x] Content (and my changes are in index.md)

Add malix to list

Curating a new topic or collection

[ ] I've formatted my changes as a new folder directory, named for the topic or collection as it appears in the URL on GitHub (e.g. https://github.com/topics/[NAME] or https://github.com/collections/[NAME])
[ ] My folder contains a *.png image (if applicable) and index.md
[ ] All required fields in my index.md conform to the Style Guide and API docs: https://github.com/github/explore/tree/master/docs

Malix is a new and evolving programming language.

Hi @MWGuy ,
You marked off:

I have no affiliation with the project I am suggesting (as a maintainer, creator, contractor, or employee).
However, you are the sole member of this org. In order to have no conflicts of interest, we don't allow maintainers to submit topics/collection additions for their own projects.

See here: https://github.com/github/explore/blob/master/CONTRIBUTING.md


Fixed a bug that would leave an order permanently broken

Upon updating line_items the OrderInventory class moves around
inventory units. As a result, it will also delete shipments if they have
0 inventory units. Due to this, the order can be in payment or confirm
and have 0 shipments. Since the order is past delivery, shipments can
never be created again.
This happens because the method that is relied upon to reset the order's
state is ensure_updated_shipments, however since the act of updating
line items can delete all shipments, this has direct implications for
ensure_updated_shipments as it will only run on orders that have
shipments.
The fix is to grab the result from ensure_updated_shipments. If it is
nil then the if block prevented it from running. If it is true
then it's final executed method was restart_checkout_flow which is
essentially just calling update_attributes which itself returns a
boolean. Once we have the result we run restart_checkout_flow
"manually" if the result is nil. This will ensure that the order gets
kicked back to a state prior to delivery and new shipments will be
created upon traversing checkout.

👍


It is not possible to set notification format

Currently, one can set Transaction State and notification URL, but setting up notification format e.g. to application/json-signed is not possible.
Correct me, if I am wrong. Please add this possibility.

Hi @sergeikretov , you are right at the moment notification format is not configurable in SDK.
But you can ask merchant support to configure IPN format in merchant account configuration (gateway side).
Best,
Stefan

Hi @sergeikretov ,
We will add this option to 3.x branch but it will not be added quickly.
Best,
Stefan

May be, you can also point us to the correct testing flow of notifications (IPNs), as currently we are actively working on integration with Wirecard and want to get all payment transactions notifications to our webhook URL. And the issue is that, if we do not set notification format to application/json-signed, then we get pure, unsigned XML in notification message that we can not trust. This all happens currently with test merchants found in documentation.
https://doc.wirecard.com/GeneralPlatformFeatures_IPN.html
https://doc.wirecard.com/CreditCard.html#CreditCard_TestCredentials

I see you use generic test merchant account.
Please ask merchant support to provide you dedicated test account with IPN configuration.
At the moment we can not provide quicker solution.
What SDK version do you use?

What SDK version do you use?
If I am not mistaking, then:
3.3.1 android
3.3.0 ios

we will try to get to merchant support for test account.

We will implement the request in 3.x versions. I added the feature to backlog.
It will take a time as we focus on different topics and a solution is available.
I cannot commit any due date.
Best,
Stefan

thank you and looking forward to having this feature. will try to use the solution you suggested, but currently no response from support yet.


Dealing with server-side named queues

Hello,
I am integrating an API which does server-side naming of the queues. Would it still be possible to use Sneakers to listen directly to the said API's queue?

Sneakers doesn't care if its target queue is server-named. It does need to know the name of the queue you want it to consume from, though.


Consider adding @none.com to known invalid domains

First of all, thank you for this gem. I've been using it for a while now, and it's super helpful.
Would you consider adding none.com to the known invalid domains? (I get users putting this as their email sometimes).

Thanks 😀
In known invalid domains we have only domains for which we know for sure that they won't have email addresses, such as IANA's example.com.
none.com being a valid domain, I a bit reluctant to add it to the known invalid list.
I added support for Custom invalid domains so that one can add its own bad domains:
# in config/initializers/email_inquire.rb
EmailInquire.custom_invalid_domains << "none.com"

That was something on my todo list :)

Change included in v0.8.0 released just now.

Yeah, that makes a lot of sense. Thanks for adding the custom domains feature - that's a great addition!


Inconsistent error messages for entity names with illegal characters

Environment details:

local deployment, Windows, Bluemix

Steps to reproduce the issue:

wsk rule create bad+rulename bad+trigname bad+actionname
Note error message
wsk rule create goodname bad+trigname bad+actionname
Note error message

Provide the expected results and outputs:
Step 2
Step 2.  `...name 'bad+name' contains illegal characters`

Step 4
Step 4.  `...name 'bad+trigname' contains illegal characters

Provide the actual results and outputs:
Step 4.
The request content was malformed:
entity name malformed

These error messages come from the Whisk server and are not generated by the wsk CLI.  It's unclear what entity name was malformed as this command requires several names.

Related to https://github.com/openwhisk/openwhisk/issues/239.

I'm hitting the same error if I try to create a rule where the action is in a package.
$wsk rule create --enable nlcTrainingRule nlcTrainingTrigger cloudbot/nlcTrainer
error: The request content was malformed:
entity name malformed (code 1015467)
I'm able to create the rule if the action is not in a package.

@kurtismgit Refer to #239 which describes your issue exactly.

Closing as duplicate of #239.


Robin wrong name space in the Reference editor

Issue submitted via PipeBot
Reporting user: DiegoQuinta

Scott, Amy told me that you were talking to her about Robin and how her namespace was wrong in the Reference Editor. I tried to fix it changing the name from "Robin 1" to just "Robin" but instead of fixing it it created a "Robin 2" and then a "Robin 3". Help I don't know how to fix this.

He fixed it


build: add Dockerfile for storage emulator

This change is

You need to rebase and fix the nits outlined above.  Unless we hear from you I am going to close this PR.

Thanks for the review @coryan, is it okay if we hold off merging this for another few days I'm trying to figure out the best place for this to live so that it can be used in CI for the new retry conformance tests.

Closing in favor of https://github.com/googleapis/testing-infra-docker/pull/133 after guidance


Capture Wild Animal

How to Demo
When in a wild battle, a player will attempt to capture the wild animal.
This capture rate is determined by the animal, its level, and its health.
If successfully captured the battle ends and the wild animal is added to the player's collection of animals.
If unsuccessful, the battle continues and the wild animal gets to freely attack the player once, as the player sacrificed their turn to attempt capture.

Begin animal class


pandoc-citeproc-<IP_ADDRESS> test suite failure

I'm seeing spurious test suite failures from pandoc-citeproc-<IP_ADDRESS>. I'm citing from http://hydra.cryp.to/build/1304494/log/raw:
Running 1 test suites...
Test suite test-pandoc-citeproc: RUNNING...
[number-of-volumes.in.native] test-pandoc-citeproc: fd:6: hClose: resource vanished (Broken pipe)
Test suite test-pandoc-citeproc: FAIL

I suppose there's a race condition somewhere?

I'm not sure what is going on here.
I use travis for CI testing, and haven't seen anything like
this on the travis builds.
You might try 0.7.4.
+++ Peter Simons [Sep 22 15 01:39 ]:

I'm seeing spurious test suite failures from pandoc-citeproc-<IP_ADDRESS>.
I'm citing from [1]http://hydra.cryp.to/build/1304494/log/raw:
Running 1 test suites...
Test suite test-pandoc-citeproc: RUNNING...
[number-of-volumes.in.native] test-pandoc-citeproc: fd:6: hClose: resource vanis
hed (Broken pipe)
Test suite test-pandoc-citeproc: FAIL
I suppose there's a race condition somewhere?
—
Reply to this email directly or [2]view it on GitHub.
References

http://hydra.cryp.to/build/1304494/log/raw
https://github.com/jgm/pandoc-citeproc/issues/172

pandoc-citeproc-0.7.4 has the same issue: http://hydra.cryp.to/build/1338884/log/raw.

Ok, here's a bit of background on how the test suite works.  It uses this code to try to find the pandoc-citeproc executable, relative to the test program (test-pandoc-citeproc), and then run it as a pipe:
  testProgPath <- getExecutablePath
  let pandocCiteprocPath = takeDirectory testProgPath </> ".." </>
        "pandoc-citeproc" </> "pandoc-citeproc"
  (ec, jsonOut, errout) <- pipeProcess
                     (Just [("LANG","en_US.UTF-8"),("HOME",".")])
                     pandocCiteprocPath
                     [] jsonIn

If I had to guess, I'd guess that something peculiar about your build environment is breaking some assumption I'm making here.  (Again, I can't reproduce this on any of the build environments I use regularly.)

Well, the test won't fail every time we run it on our hardware either. It fails spuriously, which is why I think it's a race condition / timing issue.

Do you recall what percent of the time it fails in this way?
Now I'm thinking that the issue may be in Text.Pandoc.Process.pipeProcess, which we use to run pandoc-citeproc and collect its output.  Its logic is mostly copied directly from System.Process.readProcessWithExitCode, and I've never seen this problem arising from its use in pandoc.
However, it's going to be hard to verify this or debug further without being able to reproduce the problem on my own.

Do you recall what percent of the time it fails in this way?

Unfortunately, I don't know that.

It would be nice to have such stats from Stackage, unfortunately we don't keep logs around yet.
It seems to pass frequently though.

Closing unless there's new information.


Unable to use "asciicast:play" event when using iframe directly

I am trying to embed an asciicast into a reveal.js presentation. What I would like to achieve is asciinema not using its own autoplay (which would cause an asciicast to load and run when the presentation is loaded, not when arriving at the slide where I am trying to run the asciicast). reveal already supports this for YouTube and Vimeo (see https://github.com/hakimel/reveal.js/blob/dev/js/reveal.js#L2753 and https://github.com/hakimel/reveal.js/blob/dev/js/reveal.js#L2760).
Using the default method of embedding asciinema breaks in reveal altogether (the asciinema iframe never gets displayed), so I am using the iframes directly:
<iframe data-autoplay src="https://asciinema.org/api/asciicasts/13761?speed=3&size=medium" id="asciicast-iframe-13761" name="asciicast-iframe-13761" scrolling="yes"></iframe>

Now what I am trying to do is use this (https://github.com/fghaas/reveal.js/blob/asciinema-autoplay/js/reveal.js#L2766):
// Asciinema embeds
toArray( slide.querySelectorAll( 'iframe[src*="asciinema.org/api/asciicasts/"]' ) ).forEach( function( el ) {
    if( el.hasAttribute( 'data-autoplay' ) ) {
        el.contentWindow.postMessage( '["asciicast:play"]', '*' );
    }
});

... which I understand is what the asciinema player expects in the message data: an array whose zeroth element is named asciicast:play.
But I find it impossible to trigger the message event listener that way, and the player doesn't auto-play. I'm almost certain I'm doing something wrong here, but am stuck and would appreciate some guidance.

@fghaas try postMessage(['asciicast:play'], '*' ) instead.

Thank you; I'll give that a shot at the next opportunity.

Just following up on this, I have finally been able to test this in a reveal.js presentation. Works like charm, thanks very much for the clarification.


Fix build plan output when a package has dependencies not used in the active configuration

44a7ee7db8621c33b4ff519be98343f95dbc5ba6 introduced an issue when outputing a
build plan for a package with some dependencies that aren't used in the built
configuration: the machinery to download/populate packages doesn't bother for
packages that aren't going to be built, but the code to calculate inputs for
the sake of the build plan iterates over all the packages in the graph, and
panics if it can't find one. This commit makes us ignore the case a package
isn't found in the build map, as it's presumably not going to be built as a
consequence, and anyone consuming the build map wont care about inputs relevant
to that package.

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @matklad (or someone else) soon.
If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes.
Please see the contribution instructions for more information.

cc @alexcrichton seams to be the same problem statement as #6086.

cc @alexcrichton seams to be the same problem statement as #6086.

Ah yes, I missed that, it looks like the same issue and an equivalent fix. This PR can probably be discarded


Rounting issue in Safari In Windows

Hey, i have a really browser specific issue using aurelia router,
i have this anchor tag and the navigate method like this

<a if.bind="col.template === 'link'" href="#" click.trigger="navigate(item[col.name].route)"
navigate(param){
this.router.navigateToRoute(param.route, param.param);
}

its working ok in all browsers but Safari running on Windows, working in IOS.
The routing is working ok, but the data is not been displayed, i tried ading an /#/ to the url on the browser  and then the data is displayed.
Do you know is this might be a know issue using the router like this in this very specific situation?
thanks,

Safari on Windows is not supported. That is a dead browser and hasn't been updated in many years.

thanks you very much for ur reply we will doom this browser


Build index name with template.

Resolves #1.

Thanks for catching those mistakes @Infra-Red. Typos should be fixed now.

Thanks @jmcarp


Apply css

Is there a easy way to just apply a css file on start?

Thank you for reaching out.  We use GitHub for tracking issues, not for providing support.
If you are in need of support, you should try our Community Forum or join our Discord chat server.
You are more likely to get the answer you are looking for in those places.
Thanks! 👍


Port camel/snake conversion logic from gRPC

Corresponds to https://github.com/googleapis/toolkit/pull/1762

Codecov Report

Merging #117 into master will increase coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #117      +/-   ##
==========================================
+ Coverage   99.48%   99.48%   +<.01%
==========================================
  Files          19       19
  Lines        1933     1937       +4
==========================================
+ Hits         1923     1927       +4
  Misses         10       10

Impacted Files
Coverage Δ

lib/google/gax/settings.rb
98.97% <100%> (+0.04%)
:arrow_up:

spec/google/gax/settings_spec.rb
100% <100%> (ø)
:arrow_up:

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 b762313...6a3eca1. Read the comment docs.


docs: add info on configuring tasks in Kotlin

Add info block for configuring tasks in build.gradle.kts
Closes #113

Thanks for the contribution!

Thanks for the contribution!


[Game Crash] System freeze on exit in exclusive fullscreen

Describe how it crashed by giving us those informations:
Whenever I try to exit OutFox 4.9.10 either through the menu or via alt+f4, with the game running in exclusive fullscreen (borderless windowed is fine), the game will basically freeze and be unresponsive - the only solution I know of is to cut the power to my Raspberry Pi and start again. Alt+F4 doesn't work, nor does alt+tab if I remember correctly.
I am running the arm64v8 build on a Raspberry Pi 4B with 4GB of RAM.
info.txt
log.txt
Explain how we can reproduce the error

Start the game
Select exclusive fullscreen in graphic options, exit the menu to save
Exit the game through either the main menu or alt+f4. It will freeze.

Sreenshots/Videos
Video of exclusive working, then borderless not working: https://youtu.be/VhfhdYTRq-Q
Additional information
This hanging behavior was also present in 4.9.9HF3, but I wanted to wait until the 4.9.10 update for Linux ARM came out to report the bug as the builds for other platforms were already out.
With 4.9.9, this freeze was particularly painful as game performance in exclusive mode was significantly better than borderless windowed. Now in 4.9.10 borderless windowed performance seems great, so I can avoid this.

can you confirm if this is still an issue for me?

Did some testing today, no hanging/crashing in <IP_ADDRESS>.


use constant memory in unionfind path compression

This will perform better with very deep chains.  Typically we don't see such chains in type inference, but this data structure can be useful in other places where such chains are possible.

Thanks Kai!


Feature Request: File Picker/Browser metro dialog

Can we possibly have some file picker/browser implementation that could work for opening/saving files?

@realies No, cause it's too difficult to create this one with the same functionality as the OS one.


batch: Use determined test to test query manager.

Query manager need to handle concurrent request, state changes, and I feel it's a good place to test with simulation framework.

Current Query Manager logic is simple, and we already used parallel test or MADSIM_TEST_NUM to test it. So I think we can make it as unplanned now.

LGTM


Delete user history and process all workflows

Delete user history before running weekly job. Don't fail weekly job when an individual workflow fails. Fix typo that caused weekly workflow testing to fail.

Thanks @smartx-usman !


failed to resolver: com.github.esafirm.android-image-picker:imagepicker:1.12.0

hello,
I tried in the dependencies all the versions but it shows that is failed to resolver. I really want to use it

me too plz help

Closing this due inactivity. Feel free to reopen.


[polygon-self-staked-pol] New strategy: polygon-self-staked-pol

This strategy calculates the voting power based on the active stake of delegators for the Polygon network

I see the strategy is taking more than 20s to run for 500 addresses. I'm trying to look for a different solution.

I see the strategy is taking more than 20s to run for 500 addresses. I'm trying to look for a different solution.

It should be fine for now. I will merge it but feel free to modify if you have any idea to optimize :)

Looks like https://github.com/aragon/polygon-snapshot-strategy/blob/e003689b5743f0f74dc56fa92adacb04bf710079/src/strategies/polygon-self-staked-pol/index.ts#L39 will not scale well if nftCounter returns a high value

Yes, we are considering a different solution with an wrapper contract that aggregates the Vp. That might reduce the strategy to a simple contract call.


Improved Documentation and Added Patch

Signed-off-by: chaitravi-ce<EMAIL_ADDRESS>What do these changes do?

Minor Changes in documentation which makes the documentation more user-friendly and easier to understand.
Fixed some minor issues.
Added a patch in troubleshooting section which resolves the libgrape-lite error while installing vineyard.

Related issue number
Fixes #296
Future Scope

Adding reference to api documentation for easy accessibility to a certain function
Adding more patches to FAQ section to describe vineyard

Once the comment above been addressed we can get this one landed.

Merged, thank you @chaitravi-ce!
I still leave #296 open for further improvements!


Archived teams reappear in selector

Android AOSP 9, 1.16.1 on server 5.8.0
There's a high chance that old archived teams reappear and can be switched to.
Once that happens the teams selector disappears and you are stuck there needing to logout and login again.
There is no error standing out in logcat.
Repro steps (not sure these trigger it every time):

open app and login as an admin
no teams selector available
open random private channel
touch one post to enter single post mode (or whatever is that called when you only see that post and its replies)
hit back arrow on title bar
hit burger menu on title bar
see the teams selector with active and archived teams
select archived team

Hi @licaon-kter,
How are you archiving the team?  Or do you mean archived channels?

mattermost team archive

@amyblais this seems to be an issue with the API endpoint that does not returned deleted/archived teams.
When the app is closed or the WebSocket disconnected the app does not know anything about the archived/deleted team. When the app is re-opened it contains offline data with the team that was deleted and when the teams are fetch from the server that endpoint does not return any information about the team being archived thus no changes to the data in the device.
The above will cause that any other request made will fail as the team is no longer available.
There are two options to fix this:

Make the endpoint to return data about deleted/archived teams and update the app data accordingly.
Replace all the teams when those are fetch. This one will probably have other ramifications.

@enahum Thank you, I was waiting on QAs to test this. I opened a ticket here: https://mattermost.atlassian.net/browse/MM-14697.

@amyblais Your QA hasn't repro? Still an issue in 1.19.0, clean app install.

@licaon-kter The Jira ticket linked above is still open and under dev investigation.

@licaon-kter I have rediscovered the Jira ticket for this issue; apologies that it was so long ago. We have tried again to reproduce but couldn't. Is this still an active issue for you?

Yup, still an issue on 1.21.1 w/ server 5.13.0

(those last two were archived a long time ago)

Thanks for the info! Turns out we just happened to repro this since my post, while investigating another bug. I'll reopen the Jira ticket and we'll track progress there. https://mattermost.atlassian.net/browse/MM-14697
Appreciate your patience and your help!

Closing as this was fixed in v1.22.


⚠ SolarOscp has degraded performance

In 07bb80d, SolarOscp ($SOLAROSCP_URL) experienced degraded performance:

HTTP code: 200
Response time: 201 ms

Resolved: SolarOscp performance has improved in 81e6392 after 9 minutes.


18959 19094 ldarkly integration plus UI tweak

*Issue:*https://github.com/bcgov/entity/issues/18959
*Issue:*https://github.com/bcgov/entity/issues/19094
Description of changes:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of the namex license (Apache 2.0).

/gcbrun

Temporary Url for review: https://bcregistry-btr-dev--pr-90-22gn9jqo.web.app

/gcbrun

Temporary Url for review: https://bcregistry-btr-dev--pr-90-22gn9jqo.web.app

/gcbrun

Temporary Url for review: https://bcregistry-btr-dev--pr-90-22gn9jqo.web.app


Add tags posts

If possible to add this function for blog posts?
Is great with the same input allowed extension in options panel style.

Sure, it will be included in the default template enhancements already planned. Thank you for the suggestion!


Since Gradle 7.3 the version isn't properly set

Same project with Gradle 7.2 sets the version during the build (?) phase so it is available during for example publishToMavenLocal, but with Gradle 7.3 it isn't and is set to / kept at "unspecified".
Generated pom file with Gradle 7.2:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.example.plugin</groupId>
  <artifactId>com.example.plugin.gradle.plugin</artifactId>
  <version>0.3.0+20211125105833</version>
  <packaging>pom</packaging>
  <name>Example plugin</name>
  <description>Example</description>
  <dependencies>
    <dependency>
      <groupId>com.example</groupId>
      <artifactId>example-gradle-plugin</artifactId>
      <version>0.3.0+20211125105833</version> <!-- with the proper value -->
    </dependency>
  </dependencies>
</project>

Generated pom file with Gradle 7.3:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.example.plugin</groupId>
  <artifactId>com.example.plugin.gradle.plugin</artifactId>
  <version>0.3.0+20211125105833</version>
  <packaging>pom</packaging>
  <name>Example plugin</name>
  <description>Example</description>
  <dependencies>
    <dependency>
      <groupId>com.example</groupId>
      <artifactId>example-gradle-plugin</artifactId>
      <version>unspecified</version> <!-- missing the proper value -->
    </dependency>
  </dependencies>
</project>

version.properties:
version.buildmeta=20211125105833
version.major=0
version.minor=3
version.patch=0
version.prerelease=
version.semver=0.3.0+20211125105833

Relevant gradle configuration (Kotlin DSL version):
plugins {
    `java-gradle-plugin`
    `maven-publish`
    idea
    `kotlin-dsl`
    id("net.thauvin.erik.gradle.semver") version "1.0.4"
}

gradlePlugin {
    plugins {
        create("example") {
            id = "com.example.plugin"
            implementationClass = "com.example.ExamplePlugin"
            displayName = "Example plugin"
            description = "Example"
        }
    }
}

publishing {
    repositories {
        maven {
            url =
                uri("https://example.com/artifactory")

            credentials {
                username = "user"
                password = "pwd"
            }
        }
    }
}

@martinvisser Looks like your project depends on itself, right?
Publish/pTML is using the right version, it's the dependency that is failing.  Do you have a runnable example I can look at?
Generally, you can fix the problem by specifying the version in a doFirst or postEvalute closure, per the documentation.

@ethauvin what do you mean with depends on itself? They're actually different artifacts, but the names look very similar.
I added an example: https://github.com/martinvisser/semver-gradle73
It generates two artifacts in maven local, the one with the gradle plugin (locate in .m2/repository/com/example/plugin/semver/com.example.plugin.semver.gradle.plugin/1.0.1 contains the plugin with a dependency with version unspecified.
If I would do doFirst or postEvaluate where would you suggest to add that, to which task? I didn't add any tasks for example and this did work in gradle 7.2.

Okay, this actually fails with 7.2 as well. The command I ran is ./gradlew incrementPatch clean publishToMavenLocal. After this I have 1.0.2 as project, but 1.0.1 as dependency version. Somewhere the order of operations indeed goes wrong, but now I don't think it's the semver plugin do be honest.
I'll have a second look.

As a workaround I now split the command in to: first increment, then publish.

@martinvisser Good investigative work! I've been there.
One thing I've discovered the hard way that might help you. Some plugins, especially the ones that have their own version property, will show undefined unless you set the property:
version = project.version
As mentioned before, this may also need to be in a doFirst closure.
Hope this helps.

@ethauvin I had another look at this issue, but I can't say I know what to do. There is as far as I can see no way to change the behaviour of the publishing task. The moment generatePomFileForExamplePluginMarkerMavenPublication is called the version isn't configured properly an results in something like this:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.example.plugin.semver</groupId>
  <artifactId>com.example.plugin.semver.gradle.plugin</artifactId>
  <version>1.0.1</version>
  <packaging>pom</packaging>
  <name>Example</name>
  <description>Description</description>
  <dependencies>
    <dependency>
      <groupId>com.example</groupId>
      <artifactId>semver-gradle73</artifactId>
      <version>unspecified</version> <!-- version is not set properly -->
    </dependency>
  </dependencies>
</project>

The version is set with Gradle 7.2 and lower, but not if two tasks are combined: ./gradlew incrementPatch generatePomFileForExamplePluginMarkerMavenPublication generates the following:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.example.plugin.semver</groupId>
  <artifactId>com.example.plugin.semver.gradle.plugin</artifactId>
  <version>1.0.1</version>
  <packaging>pom</packaging>
  <name>Example</name>
  <description>Description</description>
  <dependencies>
    <dependency>
      <groupId>com.example</groupId>
      <artifactId>semver-gradle73</artifactId>
      <version>1.0.0</version>
    </dependency>
  </dependencies>
</project>

The version.properties file is updated in both cases.
#Generated by the Semver Plugin for Gradle
#Tue Dec 21 13:35:02 CET 2021
version.buildmeta=
version.major=1
version.minor=0
version.patch=1
version.prerelease=
version.semver=1.0.1

I have no clue on how to change the behaviour of the publishing plugin itself, as that's part of Gradle. I played around with publications as configuration of that plugin, trying to set the version there, but nothing seems to help.

publishing {
    publications {
         // or beforeEvaluate, or omitted, version is the previous value (in 7.2, unspecified in 7.3) if done with two tasks in one go
        afterEvaluate {
            all {
                version = project.version // if hard coded, this is picked up though
            }
        }
    }

    repositories {
        mavenLocal()
    }
}

@martinvisser In your pom <version> is set to 1.0.1 at the top. Is that the correct semver version number? I'm not seeing a difference in behavior between Gradle 7.2 and 7.3 on my own projects; the project version is set correctly on publishToMavelLocal, etc.
I guess I'm confused as to why the semver version is used as a dependency. It is intended to set the project version, not dependencies. I looked at your example and I'm not seeing where the dependency version is set. Your example seems to work as it should with Gradle 7.3.
If you want to update your example, I'll gladly look at it.

As it turns out it's really just Gradle itself and apparently just not working as expected. Is do see a difference between 7.2 and 7.3, but I have the feeling it relates to https://github.com/gradle/gradle/issues/4783.
Doing a manual publication works as expected, like this:
gradlePlugin {
    isAutomatedPublishing = false

    plugins {
        register("example") {
            id = "com.example.plugin.semver"
            implementationClass = "com.example.plugin.ExamplePlugin"
            displayName = "Example"
            description = "Description"
        }
    }
}

publishing {
    repositories {
        mavenLocal()
    }

    publications {
        register<MavenPublication>("pluginMaven") {
            from(components["java"])
        }

        register<MavenPublication>("examplePluginMarkerMaven") {
            groupId = gradlePlugin.plugins["example"].id
            artifactId = gradlePlugin.plugins["example"].id + ".gradle.plugin"
            pom.withXml {
                asNode().appendNode("name", gradlePlugin.plugins["example"].displayName)
                asNode().appendNode("description", gradlePlugin.plugins["example"].description)
                val dependency = asNode().appendNode("dependencies").appendNode("dependency")
                dependency.appendNode("groupId", group)
                dependency.appendNode("artifactId", rootProject.name)
                dependency.appendNode("version", version)
            }
        }
    }
}


Change the public directory path

I'm wondering if you could implement something that would help me (us) to have microweber in the root directory and just have the css, js and images in the public directory?
Thank you! I appreciate your amazing work!

You could always go with Laravel's default folder structure (a dedicated "public" directory) but you'll have to delete this line or change it to whatever you like
https://github.com/microweber/microweber/blob/1.0/src/Microweber/MicroweberServiceProvider.php#L148

Perhaps it would make sense to make that easier to configure but that's not a priority for now. The reason for flattening the folder structure are most shared hosting providers which don't let users change their public directories. So yeah, not very awesome but compatibility has always been in the way of perfection :)

Man! Thank you! I would try it after I get back, I appreciate it! Own you a beer, glass of wine, coffee or tea, or bottle of water at least :)

Yes, we drink all of these and several others :) Have a great day

Just keep in mind we're not done with the final release yet so any changes to the core could cause you to make manual merges when updating.

ok, thanks!

Actually I recommend you copying that line to
https://github.com/microweber/microweber/blob/1.0/src/Microweber/MicroweberServiceProvider.php#L148
and adding 'public' or whatever after base_path(). It would be safer.

it didnt work :( my public folder is public_html but I tried to concat it like this: base_path()."public_html", base_path()."/public_html",  return base_path()."public_html",  return base_path()."/public_html",  but i didnt work.

Did you also move index.php and the other public files from the base directory? Where did you make the changes? In the AppServiceProvider or MicroweberServiceProvider?

I add it to AppServiceProvider and as you said in the first message I just commented out the whole line in MicroweberServiceProvider/ , which are the files that I have to move to the public folder? I thought that with this I was going to be able to have everything except for css, js, and picture folders in the public folder

Nope, this will change your public folder. That means you'll also have to have index.php and .htaccess in that folder. Any "browsable" files at all. Now I realized you'll also have to change some paths in that same index.php.
You don't have to delete the line from MicroweberServiceProvider if you're calling the method in AppServiceProvider, you do either one of these but not necessarily both.
However, I haven't tested it out so I'm not 1000% sure if it's going to be that simple. Let me know how it goes. We'll surely do something about making it easier in the future.

Actually, what's the matter with the current setup? Your assets (CSS, JS) should be in userfiles in your template's folder.

Thanks for helping me. what I did is just what I was toughed  to do,(dont leave any unnecessary file in the public folder, and put everything in the root folder.) so what I did is, I made a index php in the public and I routed it to the one you made by default. I created a css, js, and img folder in the public, and since then I have tried to make it work like that. The userfiles folder is in my root directory (When I say root directory I mean the parent of my public_html folder). And there isnt anything wrong, it is just that I cant use microweber until I put it out of the reach of people, in the same way as laravel is by default

I understand. However, this shouldn't be an issue if you've secured your web server properly. I mean, if someone hacks into your server and is able to read files having a designated public folder won't make a difference.
With that said, we'll further look into this.

I appreciate it

We'll put this in the config for the next release. You'll be able to change the public folder from there.

I believe @peter-mw has experience with this - the base of the solution is to use symbolic links pointing to the root folder (usr/share/microweber).

hi
i still haven't got to this issue, for now all the sensitive folders are protected by .htaccess file in each of them
i agree that changing public folder has to be done, so will i leave this issue open until its resolved.


Flutter Fuchsia tests are consistently losing the connection to the device

https://chromium-swarm.appspot.com/task?id=4f1ca55724894a10
@arbreng
Marking P1 due to blocking Fuchsia SDK rolls.

Not sure exactly what is happening here, I'll need to keep digging to find what is causing this flakiness.

Closing as duplicate of https://github.com/flutter/flutter/issues/67942


fix: allow macros to recursively resolve closes #2399

macro variables were not resolving additional macro references. also, we ensure conversion of sql to the right dialect when using string templates like @sql
cc @erindru

@erindru can you test that this works for your use case?


Doesn't load properly when creating a new game.

This is what is shown in the console, I was attempting to start a 4 player game after editing the config file and saving it.

 This is what is shown in the console, I was attempting to start a 4 player game after editing the config file and saving it.

Tried to replicate the problem but couldn't get the error, i managed to create and start the game correctly.
If it was online coop, did everyone that joined had the mod installed? (They need to have 4 max players in the config too)

Closed 'cause of inactivity, also can't reproduce


No Command  Install-ContainerHost.ps1 on Windows 10 build 10586

On my  Windows 10 build 10586 , “Get-ContainerImage” is not exist.
So Install-ContainerHost.ps1 failed.
https://github.com/Microsoft/Virtualization-Documentation/blob/live/virtualization/windowscontainers/quick_start/inplace_setup.md

My Windows 10 is Professional Edition

Qin-nz, you will need to use Hyper-V on Windows 10 for the container host. This doc details a scripted deployment, which will work on Windows 10 - https://msdn.microsoft.com/en-us/virtualization/windowscontainers/quick_start/container_setup .
Let me know if this resolves our issue.
Thanks
neilp

Is it means my Windows 10 need a Windows Server 2016 Virtual Machine, and run docker on Windows Server 2016 ?

Yes this is correct. The container role can only be enabled on a Windows Server 2016 TP4 installation.

Closing this issue -- good feedback but not a bug.

I've updated the doc's to be more clear around this topic.


Radiotherm thermostats keep losing connectivity

Make sure you are running the latest version of Home Assistant before reporting an issue.
You should only file an issue if you found a bug. Feature and enhancement requests should go in the Feature Requests section of our community forum:
Home Assistant release (hass --version): 0.48.0
Python release (python3 --version): Python 3.4.2
Component/platform: Radiotherm
Description of problem: I have 2 radiotherm thermostats at home (Radiotherm CT50 and Filtrete 3M50). Both of them lose connectivity with hass intermittently every single day. Usually one of them loses connectivity, while the other keeps working, and the next day it could be vice versa. When it happens, temperature graph does not update and shows straight line; changing temperature actually works on thermostat itself, but not reflected in hass UI. The log is flooded with messages like this every minute:
2017-07-07 21:14:12 WARNING (MainThread) [homeassistant.components.climate] Updating radiotherm climate took longer than the scheduled update interval 0:01:00
and occasionally
2017-07-07 22:00:12 WARNING (MainThread) [homeassistant.helpers.entity] Update for climate.livingroom is already in progress
I logged in to hass machine (raspberry pi) and checked that both thermostats are pingable and work fine via their http interface via curl. Yet home assistant still thinks one of them is not working. Rebooting raspberry pi fixes the problem for few hours, and then it happens again. I do reboots every night, and still by the next evening one of the thermostats usually gets into this state.
Any idea how to debug and fix this? This has been happening for few weeks if not months with various frequency. At some point nightly reboots mostly helped, but still the problem is there and it would be great to understand it.
Expected: Home assistant should not "lose connectivity" with radiotherm thermostats. If an update takes long time (which is possible since thermostats are single-threaded and slow), it should wait some time and then retry the update.
Problem-relevant configuration.yaml entries and steps to reproduce:

climate:
  - platform: radiotherm
    hold_temp: true
    host:
      - <IP_ADDRESS>
      - <IP_ADDRESS>

Restart machine with home assistant. Thermostats work fine.
Wait few hours - repros mostly every day within 24 hours
Look at the temperature graphs - temperature stops updating

Traceback (if applicable):
pi@hass:/home/homeassistant/.homeassistant $ curl http://<IP_ADDRESS>/tstat
{"temp":75.50,"tmode":1,"fmode":0,"override":1,"hold":1,"t_heat":56.00,"tstate":0,"fstate":0,"time":{"day":4,"hour":22,"minute":27},"t_type_post":0}
pi@hass:/home/homeassistant/.homeassistant $ curl http://<IP_ADDRESS>/tstat
{"temp":76.00,"tmode":1,"fmode":0,"override":0,"hold":1,"t_heat":61.00,"tstate":0,"fstate":0,"time":{"day":4,"hour":22,"minute":27},"t_type_post":0}

Additional info:

I've been seeing a good bit of "taking longer than 10 seconds" but no "longer than the scheduled update interval 0:01:00." What model/firmware?

Yes, there are some "taking longer than 10 seconds" messages right after reboot, but thermostats work during that time. They stop working when "longer than 0:01:00" messages start to flood the log. Models are Radiotherm CT50 and Filtrete 3M50, firmware version 1.04.84 on both, api_version 113, wlan_fw_version v10.105576.

I tried setting "scan_interval" to 2, then 4 minutes, and now I'm getting "Updating radiotherm climate took longer than the scheduled update interval 0:04:00" every 4 minutes. When I try to change temperature in home assistant, I get "Update for climate.livingroom is already in progress".
Could it be that some network request got stuck somehow and hass is still waiting for it to complete, meanwhile rejecting all the other requests to this device? How can something like this be diagnosed?

That's what it seems like, maybe. When you restart HASS, does the errant behavior begin immediately?

No, after few hours, usually <24. Btw, if I just restart HASS (by calling service homeassistant -> restart) it never comes back, so I need to reboot raspberry pi, only this way it comes back. Not sure if this is related, but also somewhat odd.

FWIW: I had to make a static arp entry on my machine for the thermostat. I was seeing timeouts as my thermostat doesn't seem to talk much. That might help you.

All my thermostats have static arp entries too, that does not help.
There is another interesting data point. There are 11 lifx bulbs in my network, so I tried disabling lifx component in HA for a week (did not turn off the bulbs, but controlled them via app instead of HA). During that week connectivity loses were less frequent, thermostats worked for 3 or 4 days before one of them lost connectivity again. So looks like this might be dependent on the amount of network traffic, I guess.
Is there any way to change default settings for polling, such as those 10 seconds it complains about in the log? Maybe I could reduce the amount of traffic this way.

FYI - I'm pretty sure I know what the problem here is.  The HA thermostat call makes 6-7 requests to the underlying radiotherm for data during update().  radiotherm does no caching, so each of those calls is a round trip to the thermostat.  These thermostats are REALLY slow, and if the receive too many requests too quickly, they just drop a lot of them.  The good news is that this is fixable - all the data that update() needs can be made in one request to the thermostat.
IMO, the best solution would be for radiothem to implement a caching system or an update() method to set the attributes.  But the author seems to be against that model.  So the solutions seem to be to a) use a different library, b) write a new library (not that hard - there is very little to the API), c) update the HA radio thermostat code to decode the lower level data itself.
I'll probably try and implement c) since it's the smallest delta to the current code some time this/next week.

In looking at this problem, I think there are multiple issues in the current radiotherm code.  The basic rule is to avoid all comm except in update() and keep that to a minimum.

the setup_platform() will fail completely if it can't talk to the thermstat at start up.  The fix for this is to not use the radiotherm class and store the thermostat host and attempt to talk to it at each update() call.  This way if the thermostat comes back on line after HASS starts up, it will start working.

update() is making a HTTP call to the thermostat 6-7 times per update() call.  This can be reduced to 2 times in the first call (1 to get the name, 1 to get the state) and 1 call every time after that (to get the state).  Each call is multi-seconds long because the thermostat is so slow.

There is a call in the constructor to set_time() which talks to the thermostat and slows down the initial set up.  This should be removed.  In the long run, I'm going to add a config option for how often (probably in days) to update the time in the thermostat with 0 meaning to not update it at all.

fan mode and hold mode are missing and can't be accessed through the HASS web interface.

1&2 are bugs which I'll work on making a PR for this weekend.  3&4 are features - I'll open a new issue and start working on those as well.
The real issue is to fix 2).  I have 2 radio thermostats set to update every 120 seconds.  I ran a ~20 hour test with 3 different implementations.  The first is the current code using the radiotherm library and I got 380 of the 10 second error messages averaging about 8-10/hour.  The second test was changing the code to use the radiotherm library tstat raw accessor (1 call per update()) and I got 74 of the 10 second errors - about 10 for the first 13 hours, then a lot of them after that.  The final test was changing the code to call the thermostat directly using the Python requests packages w/ a valid timeout and I got 1 timeout for the whole test.
That makes it pretty clear to me that I should rewrite this class to just call the thermostat directly.  It's only about a few more lines of code than the current class and seems to work much more efficiently.

Not using a library for device communication is against the ground philosophy for device integration in home assistant.
https://home-assistant.io/developers/code_review_platform/#6-communication-with-devicesservices

@MartinHjelmare: Are you saying I'm forced to use that library just because it exists even though that library is what's causing the problem in first place?  In this case, the "API" is basically a single URL get with json decode.  Writing a new radio thermostat library just to wrap a couple of URL get/post calls is kind of crazy.  There are tons of existing HA components that make exactly that kind of URL call already.  Those seem fine so why is this one not fine?  I'm not trying to be combative - it just seems like adding tons of work (or picking a very sub-optimal solution) when a very simple solution works fine doesn't seem like a good idea to me.

@TD22057 First off, thanks for digging into this.  I had stopping using this component due to reliability issues so i'm glad someone is working to make things better.
I don't think @MartinHjelmare is suggesting you have to use the existing library, just that the preference for device integration is to keep anything device specific in an external library.  You could try to submit a PR to the existing library to implement your changes or propose a switch to a new one you create.  A main reason for this is to ensure Home Assistant gives back to the python community.  By keeping device integrations in separate libraries others can benefit from the work we do on HA in their own projects.

@mezz64 Sounds good.  I was going to submit a PR with just the stability improvements and then work on adding the missing functionality (hold toggle, fan control, retry of failed set functions).  But that new functionality might make a difference on deciding whether or not to factor out the code into a new radio therm library so I'll just go ahead and implement it and push it to my repo where it can be reviewed and we can make a decision on the best thing to do.

OK - if anyone wants to help test the updated components/climate/radiotherm.py code, you can find it here or by grabbing the radio_thermostat_fix branch in this repository.
I'm getting vastly fewer timeout warnings and I've added fan control which will show up in the GUI now.  Timeouts seem to occur now when the thermostat is actively heating and cooling (~4/hour on mine).  No idea why the thermostat is under more load then but I don't see any thing that can be done about it.

I would love to help test but I'm using hass.io.  Any idea how I can load the code?

Got it working.  I had to make a dir in the config folder  /config/custom_components/climate.  Your changes have fixed my connection issues.  Before I would normally only get 3-4hrs of reading before it quit working.  Its been working for the last 12hrs perfectly.  Thanks for the improvements!!

Awesome!  But - I would caution you to give it longer.  I noticed that when the AC is running, even my fixes start having time outs.  Still an order of magnitude less than the original code but they happen.  My conclusion is that the thermostat firmware is terrible.  There must be something about holding the relay open that causes the http server to have trouble responding to requests.
I haven't put in a pull request yet for the fixes because I'm going to try and replace the request calls w/ asynic IO calls and see if that helps.  I also want to implement an automatic retry system - especially for any set() functions so that changing the temperature has a higher likelihood of working even if the first call times out.

@TD22057 Thanks a lot for making these fixes! Are they available in any release yet? (Just catching up on this, didn't have time recently to play with HA.)

@andyat Nope - I was waiting.  But I should probably go ahead and push what I have because it does fix the issue and adds fan on/off support.  I was going to try and also work on:

use async io http requests
add an auto-retry feature if a set function call fails (I really hate that it fails silently to set the temp every once in awhile and has to be re-called manually)
fix auto mode which doesn't work at all right now
add a hold toggle to the class and web UI instead of the always hold/never hold system in place now

But it's probably better to push what I have now and work on those items in a separate PR.

@TD22057 Will be great if you could push what you have, so that connectivity gets fixed.

@TD22057 Saw your pull requests on this, great to see progress!
By the way, since you are working on this already, would you mind adding the following to future work list?

Fix "state" to reflect current state accurately. Currently thermostat has the following 3 properties: "state", "mode", "operation_mode", all of them always set to "heat", even when heater is not running. I think probably mode/operation_mode should stay as it is, but "state" should reflect current state, such as "heat", "idle", "cool" of "off". Or maybe add another property if "state" is not good for that. Currently there is no way to know when heater is running and when it is idle. Thoughts?

@andyat The whole climate module is a little confusing.  A lot of the functions sound similar and there isn't much in the way of docs explaining what the differences are.   Many of the thermostats have the same modes but use slightly different terminology as well.  There is "current_operation" and "operation_mode".  It looks like those are the same thing which is the thermostat mode (heat/cool/off) not whether it's currently heating or cooling but I'm not sure.  I'm not sure there is a current API for getting when it's actually on.
The radiothermostat class has the active mode already in it.  It's self._tstate which will be either STATE_IDLE, STATE_HEAT, or STATE_COOL.  There just isn't any system for pushing that out to HA as far as I can see.
I think there are couple of ways forward with that.  Either the 1) thermostat API needs to be updated to have an active mode attribute or 2) the device should create extra binary sensors (one for heating on and one for cooling on), or 3) the device should create some new multi-state sensor that indicates the active mode.  In any case, it would be nice to access that attribute from other places in HA and it would be nice if the detailed web view were updated to show when it's one - maybe highlighting the plot in blue or red to show active cooling and heating.