Announcement

Collapse

The Alpha Software Forum Participation Guidelines

The Alpha Software Forum is a free forum created for Alpha Software Developer Community to ask for help, exchange ideas, and share solutions. Alpha Software strives to create an environment where all members of the community can feel safe to participate. In order to ensure the Alpha Software Forum is a place where all feel welcome, forum participants are expected to behave as follows:
  • Be professional in your conduct
  • Be kind to others
  • Be constructive when giving feedback
  • Be open to new ideas and suggestions
  • Stay on topic


Be sure all comments and threads you post are respectful. Posts that contain any of the following content will be considered a violation of your agreement as a member of the Alpha Software Forum Community and will be moderated:
  • Spam.
  • Vulgar language.
  • Quotes from private conversations without permission, including pricing and other sales related discussions.
  • Personal attacks, insults, or subtle put-downs.
  • Harassment, bullying, threatening, mocking, shaming, or deriding anyone.
  • Sexist, racist, homophobic, transphobic, ableist, or otherwise discriminatory jokes and language.
  • Sexually explicit or violent material, links, or language.
  • Pirated, hacked, or copyright-infringing material.
  • Encouraging of others to engage in the above behaviors.


If a thread or post is found to contain any of the content outlined above, a moderator may choose to take one of the following actions:
  • Remove the Post or Thread - the content is removed from the forum.
  • Place the User in Moderation - all posts and new threads must be approved by a moderator before they are posted.
  • Temporarily Ban the User - user is banned from forum for a period of time.
  • Permanently Ban the User - user is permanently banned from the forum.


Moderators may also rename posts and threads if they are too generic or do not property reflect the content.

Moderators may move threads if they have been posted in the incorrect forum.

Threads/Posts questioning specific moderator decisions or actions (such as "why was a user banned?") are not allowed and will be removed.

The owners of Alpha Software Corporation (Forum Owner) reserve the right to remove, edit, move, or close any thread for any reason; or ban any forum member without notice, reason, or explanation.

Community members are encouraged to click the "Report Post" icon in the lower left of a given post if they feel the post is in violation of the rules. This will alert the Moderators to take a look.

Alpha Software Corporation may amend the guidelines from time to time and may also vary the procedures it sets out where appropriate in a particular case. Your agreement to comply with the guidelines will be deemed agreement to any changes to it.



Bonus TIPS for Successful Posting

Try a Search First
It is highly recommended that a Search be done on your topic before posting, as many questions have been answered in prior posts. As with any search engine, the shorter the search term, the more "hits" will be returned, but the more specific the search term is, the greater the relevance of those "hits". Searching for "table" might well return every message on the board while "tablesum" would greatly restrict the number of messages returned.

When you do post
First, make sure you are posting your question in the correct forum. For example, if you post an issue regarding Desktop applications on the Mobile & Browser Applications board , not only will your question not be seen by the appropriate audience, it may also be removed or relocated.

The more detail you provide about your problem or question, the more likely someone is to understand your request and be able to help. A sample database with a minimum of records (and its support files, zipped together) will make it much easier to diagnose issues with your application. Screen shots of error messages are especially helpful.

When explaining how to reproduce your problem, please be as detailed as possible. Describe every step, click-by-click and keypress-by-keypress. Otherwise when others try to duplicate your problem, they may do something slightly different and end up with different results.

A note about attachments
You may only attach one file to each message. Attachment file size is limited to 2MB. If you need to include several files, you may do so by zipping them into a single archive.

If you forgot to attach your files to your post, please do NOT create a new thread. Instead, reply to your original message and attach the file there.

When attaching screen shots, it is best to attach an image file (.BMP, .JPG, .GIF, .PNG, etc.) or a zip file of several images, as opposed to a Word document containing the screen shots. Because Word documents are prone to viruses, many message board users will not open your Word file, therefore limiting their ability to help you.

Similarly, if you are uploading a zipped archive, you should simply create a .ZIP file and not a self-extracting .EXE as many users will not run your EXE file.
See more
See less

Workflow when multiple people are working on the same components?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Workflow when multiple people are working on the same components?

    I am working on a small application with a small team (about a half dozen components and a half dozen people), and we are struggling to figure out an efficient workflow that allows us to work concurrently. For instance, maybe one person is working on a larger feature, but I identify a bug in the same components and want to fix it before they are done. Or maybe I am unsure which components other people are even working on, and so I don't know what I can change without causing other people grief.

    We are using source control, but since changes to Alpha components can't be merged, it's not solving this problem for us.

    To make things more complicated, we have a requirement to make a specific type of change every week and publish it to our production server. We'd like to be able to make this change using the latest code base so we don't have to make the changes multiple times, but we also cannot publish buggy or incomplete components for obvious reasons. I would make the change on another branch and merge it in once the features in development are stable, but again, it seems Alpha does not support that.

    I'm hoping there are people here who work in teams and have figured out a solution to this issue. Anyone have any ideas?

  • #2
    Re: Workflow when multiple people are working on the same components?

    From what I've experienced, multiple people cannot work on the same component at the same time. I feel this is true of pretty much every environment ever written... and certainly true of every development environment I've worked with in the last 40 years.

    Even the Alpha development team cannot work on the same component at the same time. They make changes to an area and merge into a code base... but 2 people cannot be making changes to the same area - whose changes take precedence?

    Within an application you can be working on a component... and I can be working on a different component... and the two components can be merged into a common application... but that's pretty much it. You'd also have to ensure that all common functions are held outside all components and that you have an environment which allows you to "check out" a function for modification... and then check it back in. If a function is checked out no one else can touch that function.

    If you want to work on the same component at the same time then you'd have to ensure that all changes are meticulously recorded... and then manually copy those changes into a base component. However, since Alpha is very much a property based environment you actually have no way of knowing if a change to a component property would affect the work of someone else.

    If you're working only on Javascript or XBasic functions, then those changes are more easily incorporated into a base component. Even then, any parameter additions may to be applied to various calls of those functions.

    Overall, based on your explanation, I don't think you can get done what you need.

    Comment


    • #3
      Re: Workflow when multiple people are working on the same components?

      @Davidk

      Have you used Git for source control? Do you know if it has a concept of "check-out" so a component/file is not updatable by anyone else until it is checked in? That's what I'm used to when I used Visual Source Safe years ago with VB6. Git seems to be the preferred method now but many of its features are lost on Alpha due to merge and even Diff comparison not working.

      Comment


      • #4
        Re: Workflow when multiple people are working on the same components?

        No... I don't use Git for version control... I find it very complicated... and a bit finicky... and since it can't handle Alpha components well I don't bother.

        Good communication is a fair substitute. Each team member knows what they're working on.

        I don't think there is a checkout like that... not in the sense that it is locked. I believe there are checks in place that warn about duplicate merge changes.

        I remember building a version control system for a large Revelation project with 6 developers in different locations. It was really just a database, but you could not access a component without checking it out first... and then no one else could pull it until it was checked back in.

        I did the same a while ago for an Alpha project, but it was just a database each team member updated... nothing got locked up... but everyone knew what everyone else was working on.
        Last edited by Davidk; 01-19-2018, 12:16 AM.

        Comment


        • #5
          Re: Workflow when multiple people are working on the same components?

          Our project is small right now with only a few components. In one component things like verbiage and layout may be adjusted by one developer another team member is tasked with working on code behind controls on the component. Developers are in different time zones so we're not in the component at the same time, but we do need to make sure we Push our changes at the end of each day. I think we need to work out a protocol to communicate the times when we don't want to Push incomplete features that will take longer than a day to implement. Without a component being explicitly checked out, I haven't found a good way for Git to let other users know to refrain from making changes to a file until the current owner pushes their changes back in.

          I agree that Git is complicated and also finicky. With free hosting sites like BitBucket it has been better than emailing files back and forth. I can't rely on a developer to remember every file they touched. Git tracks all of the files in the project so if a .CSS file changes it notices. It has been helpful to be able to roll back to previous versions to see how things worked in a previous build. If someone knows of a simpler version control system with check in/out capability I'd like to hear about it. Dropbox and Google Drive aren't enough.

          Ben

          Comment


          • #6
            Re: Workflow when multiple people are working on the same components?

            We use subversion SVN with Tortoise SVN. We try not to edit the same component by communication.
            There is an option in tortoise named (get lock) we never really used it. its purpose is to lock the file so no one else can edit it.
            If by mistake 2 people edit the same component while updating we receive a message saying that this component was edited by someone else and asks for an action (which version to use).
            there is then an option to view "THE DIFFERENCE" while it is not really readable but we can get an idea of what has been modified then we redo the smaller modification (also via communication).
            The result is not perfect but it's acceptable, I am happy with it.

            I am curious if someone here uses any tool for testing?

            Paul

            Comment


            • #7
              Re: Workflow when multiple people are working on the same components?

              Have you seen the latest Alpha Webinar on source control?

              https://www.youtube.com/watch?v=3hvAH55OOpQ
              Alpha Anywhere v12.4.6.2.4 Build 7040-5530 IIS v10.0 on Windows Server 2019 Std in Hyper-V

              Comment


              • #8
                Re: Workflow when multiple people are working on the same components?

                I feel that webinar was simply a glossed over, jargon full, review of Git that has nothing to do with source control as it applies to UX components. Sure, change a readme file and it'll tell you. But make 50 changes to properties in a UX and all you'll get is your UX doesn't match the same UX that someone else is working on. If you're running a team where you allow 2 people to work on the same component at the same time... then Git won't help you gain the intelligence you actually need to run that team.

                Kat is looking for a component level solution. Git... and that webinar... are not it.

                Comment


                • #9
                  Re: Workflow when multiple people are working on the same components?

                  Mmm, okay David ... you're the man! It sounds like Alpha is trying to help in this area, and I thought it may be of some help to her, it was just a suggestion you know. I don't need or use source control. It sounds like Alpha are listening and okay, maybe they're not quite there yet, but are working towards it.

                  I've noticed more and more this type of cutting response from you lately. Kat can look at it and make her own conclusions as to whether it might contain something useful.
                  If not, jeez dude, sorry to waste everyone's time.
                  Alpha Anywhere v12.4.6.2.4 Build 7040-5530 IIS v10.0 on Windows Server 2019 Std in Hyper-V

                  Comment


                  • #10
                    Re: Workflow when multiple people are working on the same components?

                    Originally posted by Kat Valentine View Post
                    We are using source control, but since changes to Alpha components can't be merged, it's not solving this problem for us.

                    Anyone have any ideas?
                    I have never actually tried it but I believe alpha has the ability to store components in json format although I am unable to find an example that uses it at https://github.com/alphaanywhere/.
                    Please see the following

                    https://www.alphasoftware.com/docume...%20Control.xml
                    https://www.alphasoftware.com/docume...age%20type.xml
                    https://www.alphasoftware.com/alphaf...Source-Control
                    https://www.alphasoftware.com/docume...t%20format.xml
                    https://www.alphasoftware.com/docume...nced/index.xml

                    If components stored in Json it should be possible to merge changes to master using Git or similar version control system.

                    HTH
                    Last edited by mumfie; 01-20-2018, 01:19 PM.
                    https://appsbydesign.co.uk/

                    Comment


                    • #11
                      Re: Workflow when multiple people are working on the same components?

                      *should be possible...interesting and makes sense. I wonder can you create a UX, then import the json and save without any conflict? Seems like it should work.
                      NWCOPRO: Nuisance Wildlife Control Software My Application: http://www.nwcopro.com "Without forgetting, we would have no memory at all...now what was I saying?"

                      Comment


                      • #12
                        Re: Workflow when multiple people are working on the same components?

                        When you save your components in the JSON format they are readable plain text. You can use a file compare program like WinMerge, Notepad++ with the Compare plugin, or SourceTree (the free GIT client). Unfortunately a simple property change actually generates multiple lines of changes in the .a5wcmp file. I recorded a video to show you the file differences after a simple change.




                        My suggestions to improve Alpha Anywhere's source control compatibility are:
                        1. Save objects in a consistent order so a comparison algorithm doesn't show false positives.
                        2. Put carriage returns in long lines so the differences will easier to find.
                        3. Put randomly generated GUIDs and function names on their own lines.


                        We ultimately want the ability to Merge changes in a single component but I see that as a tough challenge with how integrated the code (JavaScript and Xbasic) is with the component properties.

                        Comment


                        • #13
                          Re: Workflow when multiple people are working on the same components?

                          Originally posted by mumfie View Post
                          I have never actually tried it but I believe alpha has the ability to store components in json format although I am unable to find an example that uses it at https://github.com/alphaanywhere/.
                          Please see the following

                          https://www.alphasoftware.com/docume...%20Control.xml
                          https://www.alphasoftware.com/docume...age%20type.xml
                          https://www.alphasoftware.com/alphaf...Source-Control
                          https://www.alphasoftware.com/docume...t%20format.xml
                          https://www.alphasoftware.com/docume...nced/index.xml

                          If components stored in Json it should be possible to merge changes to master using Git or similar version control system.

                          HTH
                          It is not possible to merge even using JSON because it is re-arranged arbitrarily every time it is saved. This makes it nearly impossible to tell what really changed, so even a manual merge is out of the question. It also always makes edits to some of the same lines (like a "last modified date" property), so it always has a conflict if two people make changes. Even if the changes made do not actually conflict at all (say we both added comments to different functions), you cannot ever do automated merges. It's slightly better than a binary format because you can go through all the lines and figure out what the actual changes were with a lot of effort, but it is not easy or efficient.

                          Maybe it is possible to move all JavaScript to external files that we can format how we choose?

                          Comment


                          • #14
                            Re: Workflow when multiple people are working on the same components?

                            Originally posted by Kat Valentine View Post
                            It is not possible to merge even using JSON because it is re-arranged arbitrarily every time it is saved. This makes it nearly impossible to tell what really changed, so even a manual merge is out of the question. It also always makes edits to some of the same lines (like a "last modified date" property), so it always has a conflict if two people make changes. Even if the changes made do not actually conflict at all (say we both added comments to different functions), you cannot ever do automated merges. It's slightly better than a binary format because you can go through all the lines and figure out what the actual changes were with a lot of effort, but it is not easy or efficient.

                            Maybe it is possible to move all JavaScript to external files that we can format how we choose?
                            There are several Json Diff/Merge tools available many with source files available which might be worth testing.
                            E.G.
                            https://softwarerecs.stackexchange.c...for-json-files
                            http://jsondiff.com/
                            https://jsoncompare.com/#!/diff/?
                            https://github.com/zgrossbart/jdd
                            Last edited by mumfie; 01-23-2018, 08:22 PM.
                            https://appsbydesign.co.uk/

                            Comment


                            • #15
                              Re: Workflow when multiple people are working on the same components?

                              Another option that Alpha could provide is a custom "diff" tool to help developers identify changes. The Alpha tool would only compare the key properties and the JavaScript/Xbasic code. MetaData, Guids, and other abstract properties would be excluded. A configuration screen would allow a user to specify what level of detail they want to see.

                              I built tool to identify changes in Microsoft Access form and report objects. It will ignore properties about the placement and size of a control, but does show the name, record source, and a few key properties (Enabled, Visible, Caption, etc.) It didn't allow me to merge control properties but I was able to merge the VBA code, which wasn't hard because it was all stored at the end of the file.

                              The attached image is from SourceTree, showing that it has a provision for using an external Diff tool.
                              2018-01-30_16-35-51_Custom_Diff_Tool.png

                              Comment

                              Working...
                              X