IDempiere/FullMeeting20150204

From WikiQSS
Revision as of 14:33, 4 February 2015 by CarlosRuiz (talk | contribs) (full meeting)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Table of Contents | Full Meeting Minutes | Full Meeting 2015-02-04

CarlosRuiz: Good Morning
Chuck_: Ggood morning
CarlosRuiz: Chuck_, will start looking at the movie you pointed to understand better the tickets
Chuck_: Thanks
Chuck_: Should I go ahead and make the proposed changes listed in the post or should I hold off until you get back?
CarlosRuiz: whatever you prefer
Chuck_: ok - I will update tomorrow
CarlosRuiz: so, tickets are https://idempiere.atlassian.net/browse/IDEMPIERE-2412 and https://idempiere.atlassian.net/browse/IDEMPIERE-2416
CarlosRuiz: and the movie http://www.chuckboecking.com/project-manufacturing-quick-demonstration-using-idempiere-open-source-erp/
CarlosRuiz: will be back in 7 minutes :-)
aguerra: good morning!!!
CarlosRuiz: Hi Alejandro
CarlosRuiz: saw the video Chuck - thank you - checking the tickets
Chuck_: please note that I created the AD changes as a Pack In. WHen I created this ticket, I had not yet used the Dictionary Maintenance feature.
Chuck_: I can recreate if you wish.
ocurieles: Good Morning
CarlosRuiz: Hi Orlando
nmicoud_: Bonjour ! CarlosRuiz, when you will have checked Chuck's tickets, could you please have a look at the following : IDEMPIERE-2430 (really fast) / IDEMPIERE-2283 (footer of print format)
aguerra: HI orlando
ocurieles: Hi, Alejandro and Carlos
CarlosRuiz: sure Nicolas
nmicoud_: thanks
hieplq__: hi @CarlosRuiz when you thinking about Chuck issue, please look some tiny issue. IDEMPIERE-2425 IDEMPIERE-2112 IDEMPIERE-1492 IDEMPIERE-2440
ocurieles: @CarlosRuiz in demo.idempiere.com i see in Partner Relation (C&W may pay invoices for Joe) how it's work ?
CarlosRuiz: good hieplq - seems I have enough work for today :-)
ocurieles: :D
nmicoud_: yep, just ask us ;)
CarlosRuiz: ocurieles, in orders you can ship to one business partner and invoice to another
CarlosRuiz: AFAIR in purchase order is immediate - in sales order you need to explicitly create the relationship in that window
ocurieles: but say C&W may pay invoices for Joe, that is not working right ?
CarlosRuiz: if you invoice C&W instead of Joe
ocurieles: OK
Not-a685: [IDEMPIERE] aisaza created IDEMPIERE-2445 Error when using multiple organizations with its own accounting schemas, calendar and chart of accounts.
Not-a685: [IDEMPIERE] http://idempiere.atlassian.net/browse/IDEMPIERE-2445
Not-a685: [IDEMPIERE] tsvikruha created IDEMPIERE-2446 PopupMenu to move tree node disappear very fast
Not-a685: [IDEMPIERE] http://idempiere.atlassian.net/browse/IDEMPIERE-2446
smartjsp: Good Morning everyone .... quick question... is there any document, example, reference abou the XML objects used by the packout XML files. ? For our smartpos we are trying to decouple our active dictionary changes (they modify a lot of windows, add AD objects and so on), moving them to a packout file, however due to the normal packout GUI functionalilty does not cover all the AD objects ... we are trying to generate those XML f
CarlosRuiz: Hi Pedro
CarlosRuiz: the usual way to isolate the changes is to set the "DateFrom" in the packout definition
smartjsp: yes... but wour current issue if for example: if we want to add callout, modify field properties and so on ....it woudl be better for us to have all those changes as XML files (manually) with soruce control .. instead of generate them fromt he webui .... then,, is there any source code, html file or similar that describe the XML sintax of the packout for that purpose ?
Not-a685: [iDempiere] CarlosRuiz_globalqss pushed 2 commits to development [+2/-0/±2] https://bitbucket.org/idempiere/idempiere/commits/
Not-a685: [iDempiere] cboecking af6a6de - IDEMPIERE-2410 Add Phase parameter to Generate PO from Project process
Not-a685: [iDempiere] globalqss 27124c4 - IDEMPIERE-2410 Add Phase parameter to Generate PO from Project process / peer review - add migration script generated from 2pack provided by Chuck Boecking
Not-a685: [IDEMPIERE] carlosruiz_globalqss updated IDEMPIERE-2410 status set to "Resolved" -assignee set to "Chuck Boecking" -Fix Version set to "None" -resolution set to "Fixed"
Not-a685: [IDEMPIERE] http://idempiere.atlassian.net/browse/IDEMPIERE-2410
CarlosRuiz: no, I think there is no such doc
smartjsp: any java file that process those xml files .. so we can analyze it and perhaps speed up our learning curve about that xml syntax.?...
CarlosRuiz: the org.adempiere.pipo2.handler.*
smartjsp: thanks Carlos ...we really want to decouple as much as possible the SmartPOS changes performed ot the standard AD, so all the community can install our OSGi plugin to existent idempiere installations, so any additional guidance and suggestions are appreciated to speed up that feature requested for many users ...currently is a very slow process testing and guessing the behaviour to have a reliable process .....
CarlosRuiz: I tried to do that with a previous version of SmartPOS
CarlosRuiz: I use a tool called dbsolo to compare database schemas
CarlosRuiz: http://www.dbsolo.com/
CarlosRuiz: is the more powerful tool I've found to compare databases
CarlosRuiz: it can also compare data and generate a script with the changes (same for schemas)
CarlosRuiz: so, you can compare a seed database with the SmartPOS database and see where are the changes
CarlosRuiz: with that must be easy to create the packout definition
CarlosRuiz: I also save the packout of the packout definition for future usage
smartjsp: Great, it looks promising I will take a look ... at this moment all the java processes and logic is very well separated within OSGI plugins, but due to the massive changes on AD (previous and future).. we want to have a safe way to promote those changes with version control and so on ..... the good side is that most of the changes are marked with the entitytype=SmartPOS ....so that will help to filter them ...
smartjsp: Carlos ...using that dbsolo approach, I assume you get a set SQL sentences (differences) to synchrorize changes to the destination DB .. ; but how do you convert them to the packout format ? (XML) ...
CarlosRuiz: dbsolo gives you a sql script - but it can also give you an html with the changes
CarlosRuiz: I mean - with those changes you can create your packout definition - and then run the packout process to create the 2Pack.zip
smartjsp: in that case are you manually converting your sql/html files to the XML file format (for example a field change with ADFIELD tag ) or including the native SQL code in a XML file to execute it ?
CarlosRuiz: ChuckBoecking, I made minor changes to IDEMPIERE-2410 - you can check the peer review at https://bitbucket.org/idempiere/idempiere/commits/27124c4
CarlosRuiz: no
CarlosRuiz: smartjsp, no
CarlosRuiz: suppose comparison shows that you added a new column on AD_User table
CarlosRuiz: you create a packout definition for SmartPOS 1.0
CarlosRuiz: and add one packout line for the table AD_User
CarlosRuiz: the comparison shows that you added a new table - then you add that table
CarlosRuiz: if you added a message (that is if you compare data) - then you add that message
smartjsp: ok. then you just use the SQL sentences .... and include them in a packout for native execution right ? if not, coudl you elaborate a bit more your approach so we can replicate it .. thanks
CarlosRuiz: after you finish the packout definition - I usually save that packout definition (export it as 2pack with the export toolbar button) and save that for future usage
CarlosRuiz: and running the packout process creates the packout for your plugin
CarlosRuiz: sql sentences (data) are just required if there is no packout handler for the object you're exporting
CarlosRuiz: if you're exporting a column - you can create a data definition for the column (select ... from ad_column)
CarlosRuiz: or you can export the table - and it will export all the non-dictionary columns
CarlosRuiz: you can also filter by DateFrom - so it will export just the columns touched after the DateFrom
smartjsp: ok .. I get it for new objects ...like tables, windows and so on, but for new fields, callouts of existent AD tables ... do you use the same approach ... ?
CarlosRuiz: fields is the same
CarlosRuiz: callouts is more tricky if you changed a dictionary entry
CarlosRuiz: that's why is better to use the OSGi callout instead of touching dictionary
smartjsp: from that perspective, is that process currently safe .. to transport minor changes to existent AD objects .. among different Idempiere environments ?..... I remember we used to have issues with this approach in previous releases ... .. any guideline to avoid primary key, UUID and related issues ?
Not-a685: [iDempiere] CarlosRuiz_globalqss pushed 2 commits to development [+3/-0/±3] https://bitbucket.org/idempiere/idempiere/commits/
Not-a685: [iDempiere] cboecking fefebd6 - IDEMPIERE-2412 Generate Production from Project with Phase - New Process
Not-a685: [iDempiere] globalqss 614bed3 - IDEMPIERE-2412 Generate Production from Project with Phase - New Process / peer review - add migration script generated from 2pack provided by Chuck Boecking
Not-a685: [IDEMPIERE] carlosruiz_globalqss updated IDEMPIERE-2412 status set to "Resolved" -assignee set to "Chuck Boecking" -Fix Version set to "None" -resolution set to "Fixed"
Not-a685: [IDEMPIERE] http://idempiere.atlassian.net/browse/IDEMPIERE-2412
CarlosRuiz: smartjsp, previous releases of idempiere? or adempiere?
CarlosRuiz: the collision in idempiere is created if two developers create the same object with different UUID - so is about communication or centralize the creation on one developer
smartjsp: our test were with adempiere 3.6.1.& Idempiere 1.0.. I guess ...but if we want to be in sync with the core UUID´s to avoid these collisions ... how is the process to coordinate that job for any teams like us creating new plug-ins ? I have seem some threads within the google group but not seen the final guidelines, any suggestions/reading for us?
Not-a685: [IDEMPIERE] carlosruiz_globalqss updated IDEMPIERE-2416 status set to "Resolved" -assignee set to "Chuck Boecking" -resolution set to "Fixed"
Not-a685: [IDEMPIERE] http://idempiere.atlassian.net/browse/IDEMPIERE-2416
Not-a685: [iDempiere] CarlosRuiz_globalqss pushed 1 commit to development [+2/-0/±8] https://bitbucket.org/idempiere/idempiere/commits/
Not-a685: [iDempiere] cboecking 2713543 - IDEMPIERE-2416 Improvement to 2412 - Generate Production from Project - Add new core fields
CarlosRuiz: smartjsp, UUID are intended to not collid
CarlosRuiz: collide
CarlosRuiz: so, the issue is having an alternate unique with different UUID - i.e. in ad_table same tablename with different UUID
smartjsp: Ok..Carlos we will play your suggestions --- thanks for your feedback..
CarlosRuiz: for your columns is better to prefix them - so won't collide in future with other plugins or core
CarlosRuiz: ChuckBoecking, 2410, 2412 and 2416 are now in development branch - thanks for your contribution
CarlosRuiz: I'm also convinced we can extend mfg light using projects
Not-a685: [IDEMPIERE] carlosruiz_globalqss created IDEMPIERE-2447 Migration script from packin adding unnecessary updates
Not-a685: [IDEMPIERE] http://idempiere.atlassian.net/browse/IDEMPIERE-2447
Not-a685: [iDempiere] CarlosRuiz_globalqss pushed 1 commit to release-2.1 [+0/-0/±2] https://bitbucket.org/idempiere/idempiere/commits/
Not-a685: [iDempiere] globalqss 2b490fa - IDEMPIERE-2447 Migration script from packin adding unnecessary updates
Not-a685: [IDEMPIERE] carlosruiz_globalqss updated IDEMPIERE-2447 status set to "Resolved" -resolution set to "Fixed"
Not-a685: [IDEMPIERE] http://idempiere.atlassian.net/browse/IDEMPIERE-2447
Not-a685: [IDEMPIERE] carlosruiz_globalqss updated IDEMPIERE-2430 status set to "Resolved" -resolution set to "Fixed"
Not-a685: [IDEMPIERE] http://idempiere.atlassian.net/browse/IDEMPIERE-2430
Not-a685: [iDempiere] CarlosRuiz_globalqss pushed 1 commit to release-2.1 [+0/-0/±1] https://bitbucket.org/idempiere/idempiere/commits/
Not-a685: [iDempiere] nmicoud a339a2a - IDEMPIERE-2430 MConversionRate.getRate should retrieve only active rates
Not-a685: [IDEMPIERE] nmicoud created IDEMPIERE-2448 Hardcoded values in WRC3SortCriteriaPanel
Not-a685: [IDEMPIERE] http://idempiere.atlassian.net/browse/IDEMPIERE-2448
Not-a685: [IDEMPIERE] nmicoud updated IDEMPIERE-2448 Attachment set to "IDEMPIERE-2448.patch"
Not-a685: [IDEMPIERE] http://idempiere.atlassian.net/browse/IDEMPIERE-2448
Not-a685: [IDEMPIERE] nmicoud updated IDEMPIERE-2448 status set to "Peer Review Queue"
Not-a685: [IDEMPIERE] http://idempiere.atlassian.net/browse/IDEMPIERE-2448
Not-a685: [IDEMPIERE] nmicoud updated IDEMPIERE-2448 labels set to "+Patch"
Not-a685: [IDEMPIERE] http://idempiere.atlassian.net/browse/IDEMPIERE-2448
Not-a685: [IDEMPIERE] nmicoud updated IDEMPIERE-2448 assignee set to "Carlos Antonio Ruiz Gomez"
Not-a685: [IDEMPIERE] http://idempiere.atlassian.net/browse/IDEMPIERE-2448
Not-a685: [IDEMPIERE] carlosruiz_globalqss created IDEMPIERE-2449 Could not invoke Toolbar listener method: onSave - NPE on GridTab.fireDataStatusChanged
Not-a685: [IDEMPIERE] http://idempiere.atlassian.net/browse/IDEMPIERE-2449
Not-a685: [IDEMPIERE] carlosruiz_globalqss updated IDEMPIERE-2283 status set to "Resolved" -assignee set to "Nicolas Micoud" -resolution set to "Fixed"
Not-a685: [IDEMPIERE] http://idempiere.atlassian.net/browse/IDEMPIERE-2283
Not-a685: [iDempiere] CarlosRuiz_globalqss pushed 2 commits to release-2.1 [+0/-0/±3] https://bitbucket.org/idempiere/idempiere/commits/
Not-a685: [iDempiere] globalqss ede7067 - IDEMPIERE-2449 Could not invoke Toolbar listener method: onSave - NPE on GridTab.fireDataStatusChanged
Not-a685: [iDempiere] globalqss 070ee26 - IDEMPIERE-2283 Print format - footer hardcoded idempiere instead installation name / integrate patch from Nicolas Micoud (nmicoud)
Not-a685: [IDEMPIERE] carlosruiz_globalqss updated IDEMPIERE-2449 status set to "Resolved" -assignee set to "Carlos Antonio Ruiz Gomez" -resolution set to "Fixed"
Not-a685: [IDEMPIERE] http://idempiere.atlassian.net/browse/IDEMPIERE-2449
nmicoud_: CarlosRuiz, while you're committing... please see this little patch https://idempiere.atlassian.net/browse/IDEMPIERE-2448 (hardcoded message in Report Wizard)
nmicoud_: and thanks for the previous :)
CarlosRuiz: thanks to you
tbayen: Hi together. I am a bit late. :-)
tbayen: I tested the patch on IDEMPIERE-2435. It works for me. :-)
CarlosRuiz: good - I'll integrate it - thanks for your feedback
tbayen: Thanks for your fast patch
Not-a685: [IDEMPIERE] carlosruiz_globalqss updated IDEMPIERE-2435 status set to "Resolved" -assignee set to "Carlos Antonio Ruiz Gomez" -resolution set to "Fixed"
Not-a685: [IDEMPIERE] http://idempiere.atlassian.net/browse/IDEMPIERE-2435
Not-a685: [iDempiere] CarlosRuiz_globalqss pushed 1 commit to release-2.1 [+0/-0/±1] https://bitbucket.org/idempiere/idempiere/commits/
Not-a685: [iDempiere] globalqss dc4fd7a - IDEMPIERE-2435 Open Balance is wrong calculated with payment selection
tbayen: Yesterday I found a bug that I already had more than a year ago. Can you look at IDEMPIERE-1616 and tell me if my understanding is right that this is a bug?
nmicoud_: gtg, bye bye
CarlosRuiz: thanks nmicoud_
Not-a685: [iDempiere] CarlosRuiz_globalqss pushed 1 commit to release-2.1 [+0/-0/±1] https://bitbucket.org/idempiere/idempiere/commits/
Not-a685: [iDempiere] nmicoud 96c6f51 - IDEMPIERE-2448 Hardcoded values in WRC3SortCriteriaPanel
Not-a685: [IDEMPIERE] carlosruiz_globalqss updated IDEMPIERE-2448 status set to "Resolved" -assignee set to "Nicolas Micoud" -resolution set to "Fixed"
Not-a685: [IDEMPIERE] http://idempiere.atlassian.net/browse/IDEMPIERE-2448
CarlosRuiz: checking tbayen
norbertbede: hi CarlosRuiz. i have reported the ticket IDEMPIERE-2436 and looks me related to IDEMPIERE-2449 WDYT ?
CarlosRuiz: looks different - if is reproducible must be easy to fix - I'll try it after
norbertbede: ok sure. i have reported some issues - after one week production with zk 7 :)
hieplq_: IDEMPIERE-2449 is very hard to understand. sometime i encounter it. it only issue one time per server session (new start). ever has this error message, record still save success
CarlosRuiz: tbayen, I think the completed payment when reversed must stay in the bank statement - and the new reversed must be unreconciled
tbayen: Yes, that is what I thought. I can do a patch. I just wanted to be sure about the "right" logic.
CarlosRuiz: testing one
tbayen: ok. It is not hard to solve.
tbayen: We had strange documents in the "unreconciled payments" list. I could not get rid of them without manually setting isReconciled in the database.
Not-a685: [IDEMPIERE] carlosruiz_globalqss updated IDEMPIERE-1616 Attachment set to "IDEMPIERE-1616.patch"
Not-a685: [IDEMPIERE] http://idempiere.atlassian.net/browse/IDEMPIERE-1616
CarlosRuiz: tbayen, attached a patch that I just tested - do you want to test it before integrating it?
tbayen: yes, ok.
tbayen: Thanks. That was fast. :-)
Not-a685: [IDEMPIERE] carlosruiz_globalqss updated IDEMPIERE-2440
Not-a685: [IDEMPIERE] Good catch [~hieplq], can you please provide a patch for migration/i2.1 folder and include also login name.
Not-a685: [IDEMPIERE] http://idempiere.atlassian.net/browse/IDEMPIERE-2440
Not-a685: [iDempiere] CarlosRuiz_globalqss pushed 1 commit to release-2.1 [+0/-0/±1] https://bitbucket.org/idempiere/idempiere/commits/
Not-a685: [iDempiere] hie...@hasuvimex.vn 65adc4e - IDEMPIERE-2112:improve shortcuts for master detail data entry windows fix esc key handle
Not-a685: [IDEMPIERE] carlosruiz_globalqss updated IDEMPIERE-2112 status set to "Resolved" -resolution set to "Fixed"
Not-a685: [IDEMPIERE] http://idempiere.atlassian.net/browse/IDEMPIERE-2112
Not-a685: [iDempiere] CarlosRuiz_globalqss pushed 1 commit to release-2.1 [+0/-0/±1] https://bitbucket.org/idempiere/idempiere/commits/
Not-a685: [iDempiere] hie...@hasuvimex.vn e960feb - IDEMPIERE-1492:when login with Organization = *, run "Bank Transfer" make error "Fill mandatory fields: : Organization" mistake when set convertType for payment to
Not-a685: [IDEMPIERE] hieplq updated IDEMPIERE-2440 Attachment set to "IDEMPIERE-2440-2.1.patch"
Not-a685: [IDEMPIERE] it's include login name.
Not-a685: [IDEMPIERE] http://idempiere.atlassian.net/browse/IDEMPIERE-2440
Not-a685: [IDEMPIERE] carlosruiz_globalqss updated IDEMPIERE-1492 status set to "Resolved" -resolution set to "Fixed"
Not-a685: [IDEMPIERE] http://idempiere.atlassian.net/browse/IDEMPIERE-1492
Not-a685: [iDempiere] CarlosRuiz_globalqss pushed 1 commit to release-2.1 [+0/-0/±1] https://bitbucket.org/idempiere/idempiere/commits/
Not-a685: [iDempiere] globalqss a7eb8d6 - IDEMPIERE-1616 reversing of reconciled payments makes database inconsistent
Not-a685: [IDEMPIERE] carlosruiz_globalqss updated IDEMPIERE-1616 status set to "Resolved" -assignee set to "Carlos Antonio Ruiz Gomez" -resolution set to "Fixed"
Not-a685: [IDEMPIERE] http://idempiere.atlassian.net/browse/IDEMPIERE-1616
Not-a685: [iDempiere] CarlosRuiz_globalqss pushed 2 commits to development [+6/-0/±24] https://bitbucket.org/idempiere/idempiere/commits/
Not-a685: [iDempiere] globalqss 0bb0493 - hg merge release-2.1 (merge release2.1 into development)
Not-a685: [iDempiere] hie...@hasuvimex.vn 6ef70b6 - IDEMPIERE-2425:height of info panel row should fix
Not-a685: [IDEMPIERE] carlosruiz_globalqss updated IDEMPIERE-2425 status set to "Resolved" -resolution set to "Fixed"
Not-a685: [IDEMPIERE] http://idempiere.atlassian.net/browse/IDEMPIERE-2425
CarlosRuiz: hieplq_, about IDEMPIERE-2436 I was able to reproduce the issue with the refresh button that norbertbede described
hieplq_: ok. i will take time to fix it.
CarlosRuiz: maybe you'll catch it faster than me
CarlosRuiz: I found the issue is about two listeners
CarlosRuiz: I added a breakpoint on the class javax.swing.table.AbstractTableModel - line 296
CarlosRuiz: and it's showing two listeners for GridTableListModel
CarlosRuiz: when calling the first everything goes fine
CarlosRuiz: calling the second throws a NPE
hieplq_: ok. thanks for hint, i will study it affter resolve IDEMPIERE-2446
CarlosRuiz: at org.zkoss.zul.impl.GridDataLoader line 90 - the variable rows is empty
CarlosRuiz: 2446 is zk7 also?
hieplq_: yes.
Not-a685: [IDEMPIERE] carlosruiz_globalqss updated IDEMPIERE-2436
Not-a685: [IDEMPIERE] bringing research from IRC: <CarlosRuiz> I found the issue is about two listeners <CarlosRuiz> I added a breakpoint on the class javax.swing.table.AbstractTableModel - line 296 <CarlosRuiz> and it's showing two listeners for GridTableListModel <CarlosRuiz> when calling the first everything goes fine <CarlosRuiz> calling the second throws a NPE <CarlosRuiz> at org.zkoss.zul.impl.GridDataLoader line 90 - the variable rows is empty
Not-a685: [IDEMPIERE] http://idempiere.atlassian.net/browse/IDEMPIERE-2436
Not-a685: [IDEMPIERE] carlosruiz_globalqss updated IDEMPIERE-2446 labels set to "zk7"
Not-a685: [IDEMPIERE] http://idempiere.atlassian.net/browse/IDEMPIERE-2446
CarlosRuiz: next week I'm going to be teaching a training in Ecuador - so I won't be able to attend meeting next wednesday
hieplq_: many job will wait you at next next wednesday :D good luck for you
Not-a685: [IDEMPIERE] deepak created IDEMPIERE-2450 Opening window on clicking record id directly from HTML Fact Acct
Not-a685: [IDEMPIERE] http://idempiere.atlassian.net/browse/IDEMPIERE-2450
hieplq_: hi @CarlosRuiz. has any quick method to detect what revision a line of code is add
CarlosRuiz: on eclipse
CarlosRuiz: right click - Team > Show Annotation
CarlosRuiz: on the source
CarlosRuiz: and then you position the mouse on the left side of the line - and the tooltip will show you the last commit that modified that line
hieplq_: oh. it's too strong. i must hard work before. thanks a lot.
CarlosRuiz: yw
tbayen: IDEMPIERE-1616 works. I see you already marked it as resolved. :-) Thanks
Not-a685: [IDEMPIERE] carlosruiz_globalqss updated IDEMPIERE-2440
Not-a685: [IDEMPIERE] @hiep, it just includes columns 200706 and 200599 LoginName is 200705 and the migration script is pointing to folder migration/hieplq
Not-a685: [IDEMPIERE] http://idempiere.atlassian.net/browse/IDEMPIERE-2440
CarlosRuiz: ah, I see hieplq_ you uploaded a new patch pointing to the correct folder - but still doesn't have the login name
CarlosRuiz: gtg - bye