Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • Martin Griffiths 826 posts 1269 karma points c-trib
    Dec 13, 2012 @ 17:54
    Martin Griffiths
    6

    Poor support for Courier

    I feel I need to "put this one out" to the wider community, because I feel there is a lack of support for this product from the community and from the Umbraco team.

    We originally paid for a licence back when v1.2 was common and we would have happily paid for an upgrade if asked when v2 was officially released. Unfortunately v2 was dogged with problems right up to v2.7. 

    Personally I feel it's pretty stable now, but I still have a glaring and very obvious issue that so far hasnt even been acknowledged let alone, fixed or explained!

    Courier is still a very important product to us and we feel it is essential to the successful management of our deployments.

    Could someone, please shed some light on why this area is so lacking? Particularly when its not free! 

    Martin

  • Eric Schrepel 161 posts 226 karma points
    Dec 13, 2012 @ 21:42
    Eric Schrepel
    0

    I agree, also having compatibility problems with Umbraco 4.11.1 and latest build (26) of Courier, can't get locations to show, nor Deploy to work correctly.

  • Martin Griffiths 826 posts 1269 karma points c-trib
    Dec 14, 2012 @ 10:00
    Martin Griffiths
    0

    Hi Eric

    All I can suggest is try build 39? It may fix your issues.

    Martin

  • John Perryn 71 posts 182 karma points
    Dec 31, 2012 @ 03:06
    John Perryn
    1

    Agree. Lack of basic doc and support. I'm guessing that roadmap pressure is part of the problem.

    Meanwhile note that <user>0</user> has changed to <userId> without visible explanation

  • Richard Barg 358 posts 532 karma points
    Jan 04, 2013 @ 07:27
    Richard Barg
    1

    I would agree with this statement. We have spent months and considerable resources trying to reconsitute a database w/corruption problems.  Ultimately we had to abandon it as a solution.

  • Per Ploug 865 posts 3491 karma points MVP admin
    Jan 11, 2013 @ 10:55
    Per Ploug
    0

    Martin, there is really nothing else to say then, yes you are right, this forum hasnt been getting the attention it deserves, and it's my fault, and my fault alone. You could always claim that there wasnt enough time or resources, that I'm busy with a ton of other stuff, but that doesn't really help any courier users, so I'll just say I'm sorry, and I'll try to do better monitoring this forum for issues. 

    Also, what is the outstanding issue that you have Martin? I searched my inbox for emails from you on anything, but didnt find anything obvious, so let me know so I can look into it. 

    My email is per @ umbraco.dk feel free to ping me

  • Per Ploug 865 posts 3491 karma points MVP admin
    Jan 11, 2013 @ 10:57
    Per Ploug
    0

    @John  I think that it has always been <user> I'm 99% sure that is typo

    Also, latest docs are here: 
    https://github.com/umbraco/Courier/tree/master/Documentation

    I try to update as often as I can, but if you need anything specific, let me know, and I'll write it

    /per 

  • Martin Griffiths 826 posts 1269 karma points c-trib
    Jan 11, 2013 @ 11:22
    Martin Griffiths
    0

    Hi Per

    Thanks for the reply, I've been working with Tim Geyssens quite a bit lately and his support (and regular updates of contour) has been absolutely awesome!

    My issue with Courier is still outstanding and I originally posted it here...http://our.umbraco.org/forum/umbraco-pro/courier/36726-Media-item-not-transferring-when-linked-in-tinyMCE

    Kind regards

    Martin

  • John Perryn 71 posts 182 karma points
    Jan 11, 2013 @ 14:53
    John Perryn
    0

    Thanks Per. I'm trying to upgrade from 4.9.0 via 4.10.1 to 4.11.1 and having problems with log4net

    In the courier.config file supplied with the log4net hotfix [Courier_2.7.3_2.7.3.39_hotfix] I see:

     <repositories>
    ....           
                OR just add the user ID:
                <userId>0</userId>
            </repository>-->
      </repositories>
    Rgds

    John P

  • Per Ploug 865 posts 3491 karma points MVP admin
    Jan 11, 2013 @ 15:27
    Per Ploug
    0

    @john, aah got it, thats a typo, looking at the code it is simply <user> will get that fixed

  • Per Ploug 865 posts 3491 karma points MVP admin
    Jan 11, 2013 @ 15:28
    Per Ploug
    0

    @Martin, thanks! do you by any chance have a sample image tag that doesnt transfer? eg. how it looks in tinyMce so I can replicate it

  • Martin Griffiths 826 posts 1269 karma points c-trib
    Jan 15, 2013 @ 12:54
    Martin Griffiths
    0

    Hi Per

    Right this is going to take some explaining, and I totally accept that it may be a "simple" config issue rather than a bug.

    Here's the complete scenario....

    I created a "file" and an "image" in the media section and uploaded a PDF to it called "workflow_for_umbraco.pdf" and "yourlogohere.jpg"

    If I create links in the RTE to these file, inside the "insert/edit links" dialog it looks like this (PDF)...

    /media/7029/workflow_for_umbraco.pdf

     

    In the source ("view source") it looks like this...Please note: the "{locallink}" for internal links

     

    When I transfer in courier from the node. I get these dialogs...

    These files transfer exactly as stated BUT, no media items are created on the live node of umbraco. I'll show the media section as images below...

     

     

    My courier.config looks like this...

    <?xml version="1.0"?>
    <configuration>
      <!-- Repository connection settings -->
      <!-- For each site, a custom repository must be configured, so Courier knows how to connect and authenticate-->
      <repositories>
        <!-- If a custom Umbraco Membership provider is used, specify login & password + set the passwordEncoding to clear: 
            <repository name="Sample" alias="sample" type="CourierWebserviceRepositoryProvider" visible="true">
                <url>http://sample.local</url>;

                

                Enter login details:
                <login>admin</login>
                <password>1234</password>
                <passwordEncoding>Clear</passwordEncoding>

                

                OR just add the user ID:
                <userId>0</userId>
            </repository>-->
        <repository name="http://live" alias="http://live" type="CourierWebserviceRepositoryProvider" visible="true">
          <url>http://live</url>;
          <user>0</user>
          <!--
                                    Alternative, you can specify the specific  login / password / encryption values
                                    <login>admin</login>
                                    <password>1234</password>
                                    <passwordEncoding>Clean|Hashed</passwordEncoding>
                                    -->
        </repository>
      </repositories>
      <settings>
        <!--Enable error logging in /app_data/courier/logs/*.txt-->
        <debugMode>false</debugMode>
        <!--Enable short filenames for courier files, can be needed in env's with long root paths-->
        <enableShortFileNames>False</enableShortFileNames>
        <!--Enable the update pull dialog for courier-->
        <contextMenuEnableUpdate>False</contextMenuEnableUpdate>
        <!-- This strips the resouces from courier files, resources are still transfered as normal files
                But if you depend on modifying resources from the courier file, in memory, you might want to turn this off (set to "False")-->
        <stripResourcesFromCourierFiles>True</stripResourcesFromCourierFiles>
        <!-- Turn off Base64 encoding for resource transfers-->
        <disableBase64Encoding>false</disableBase64Encoding>
        <!--  Generate a mindmap of extracted revisions, useful for debugging -->
        <mapGraph>false</mapGraph>
        <!-- overwrite modes is either Always|Never|Compare -->
        <overwrite>
          <resources>Compare</resources>
          <items>Compare</items>
          <dependencies>Compare</dependencies>
        </overwrite>
      </settings>
      <security>
        <filters>
          <ipfilter>
            <allow>*</allow>
          </ipfilter>
          <userfilter>
            <allow>*</allow>
            <!--<deny>editor</deny>-->
          </userfilter>
        </filters>
      </security>
      <!--
        <cache>
            <enable>true</enable>
            <locations>
                <add path="everything">
                    <provider id="*" />
                </add>
            </locations>
        </cache>
         -->
      <itemProviders>
        <folderItemProvider>
          <include>
            <!--<folder>~/media/assets/somefolder</folder>-->
          </include>
        </folderItemProvider>
        <fileItemProvider>
          <files>
          </files>
        </fileItemProvider>
        <documentTypeItemProvider>
          <!-- Include all avaiable templates as dependencies, if false, only the current standard template is included -->
          <includeAllTemplates>false</includeAllTemplates>
          <!-- By default we won't add the built-in datatypes as dependencies, if needed, they can be removed from the list below -->
          <!-- Only datatypes which are installed as standard, and does not have any settings are ignored -->
          <!-- to add, find the datatype in the umbracoNode table and copy its uniqueId value to a node below-->
          <ignoredDataTypes>
            <add key="contentPicker">A6857C73-D6E9-480C-B6E6-F15F6AD11125</add>
            <add key="textstring">0CC0EBA1-9960-42C9-BF9B-60E150B429AE</add>
            <add key="textboxmultiple">C6BAC0DD-4AB9-45B1-8E30-E4B619EE5DA3</add>
            <add key="label">F0BC4BFB-B499-40D6-BA86-058885A5178C</add>
            <add key="folderbrowser">FD9F1447-6C61-4A7C-9595-5AA39147D318</add>
            <add key="memberpicker">2B24165F-9782-4AA3-B459-1DE4A4D21F60</add>
            <add key="simpleeditor">1251C96C-185C-4E9B-93F4-B48205573CBD</add>
            <add key="truefalse">92897BC6-A5F3-4FFE-AE27-F2E7E33DDA49</add>
            <add key="contentpicker">A6857C73-D6E9-480C-B6E6-F15F6AD11125</add>
            <add key="datepicker">5046194E-4237-453C-A547-15DB3A07C4E1</add>
            <add key="datepickerWithTime">E4D66C0F-B935-4200-81F0-025F7256B89A</add>
            <add key="numeric">2E6D3631-066E-44B8-AEC4-96F09099B2B5</add>
          </ignoredDataTypes>
        </documentTypeItemProvider>
        <mediaItemProvider>
          <!-- Changed to false in 2.1.1 -->
          <includeChildren>false</includeChildren>
          <includeParents>true</includeParents>
        </mediaItemProvider>
        <documentItemProvider>
          <includeParents>false</includeParents>
        </documentItemProvider>
        <!-- Add the fully classified Class name to ignore a provider from loading... -->
        <ignore>
          <!--<add>my.namespace.*</add>-->
        </ignore>
      </itemProviders>
      <itemDataResolvers>
        <files>
          <!-- add new datatype elements for data types that stores files as a path ex: /meda/223/file.png -->
          <add key="Upload">5032a6e6-69e3-491d-bb28-cd31cd11086c</add>
          <add key="Ucomponents-Filepicker">318a9c2e-3966-4979-8c1d-575c5d5f669b</add>
        </files>
        <contentPickers>
          <!-- add new datatype elements for data types that stores page ids (ex: "1242" or "1726,2362,2323") -->
          <add key="contentPicker">158aa029-24ed-4948-939e-c3da209e5fba</add>
          <add key="ultimatePicker">cdbf0b5d-5cb2-445f-bc12-fcaaec07cf2c</add>
          <add key="Ucomponents-XpathCheckboxlist">d2d46927-f4f8-4b1b-add7-661cc09a0539</add>
          <add key="Ucomponents-XpathDropdownlist">57a62843-c488-4c29-8125-52f51873613e</add>
          <add key="XpathCheckboxlist">34451d92-d270-49ba-8c7f-ee55bfeee1cb</add>
          <add key="XpathDropdownlist">173a96ae-00ed-4a7c-9f76-4b53d4a0a1b9</add>
          <add key="Ucomponents-AutoComplete">31aa0d5c-f8e1-4cdc-a66e-c7f8c09498ef</add>
          <add key="Ucomponents-MNTP-CSV">c2d6894b-e788-4425-bcf2-308568e3d38b</add>
          <add key="MNTP-CSV">7e062c13-7c41-4ad9-b389-41d88aeef87c</add>
        </contentPickers>
        <mediaPickers>
          <!-- add new datatype elements for data types that stores media ids (ex: "1242" or "1726,2362,2323") -->
          <add key="mediaPicker">EAD69342-F06D-4253-83AC-28000225583B</add>
      <add key="damp2">ef94c406-9e83-4058-a780-0375624ba7ca</add>
          <add key="Ucomponents-MNTP-CSV">c2d6894b-e788-4425-bcf2-308568e3d38b</add>
          <add key="MNTP-CSV">7e062c13-7c41-4ad9-b389-41d88aeef87c</add>
      <add key="TinyMCE3">5e9b75ae-face-41c8-b47e-5f4b0fd82f83</add>
      <add key="Upload">5032a6e6-69e3-491d-bb28-cd31cd11086c</add>
        </mediaPickers>
        <keyValuePrevalueEditors>
          <!-- Prevalue editors that store values as a key value pair in the built-in umbracp prevalue storage, identified by their full class-name -->
          <add key="KeyValuePrevalueEditor">umbraco.editorControls.KeyValuePrevalueEditor</add>
        </keyValuePrevalueEditors>
        <localLinks>
          <!-- Propertytypes that CAN contain locallinks (like the ones inserted with TinyMCE) -->
          <add key="TinyMCE3">5e9b75ae-face-41c8-b47e-5f4b0fd82f83</add>
          <add key="TextboxMultiple">67db8357-ef57-493e-91ac-936d305e0f2a</add>
          <add key="Textstring">ec15c1e5-9d90-422a-aa52-4f7622c63bea</add>
          <add key="Simple Editor">60b7dabf-99cd-41eb-b8e9-4d2e669bbde9</add>
          <add key="Upload">5032a6e6-69e3-491d-bb28-cd31cd11086c</add>
    </localLinks>
        <macros>
          <!-- Propertytypes that CAN contain macro mark-up (like the ones inserted with TinyMCE) -->
          <add key="TinyMCE3">5e9b75ae-face-41c8-b47e-5f4b0fd82f83</add>
          <add key="TextboxMultiple">67db8357-ef57-493e-91ac-936d305e0f2a</add>
          <add key="Textstring">ec15c1e5-9d90-422a-aa52-4f7622c63bea</add>
          <add key="Simple Editor">60b7dabf-99cd-41eb-b8e9-4d2e669bbde9</add>
          <add key="Macro Container">474FCFF8-9D2D-11DE-ABC6-AD7A56D89593</add>
        </macros>
        <templates>
          <add key="include" />
        </templates>
      </itemDataResolvers>
      <macroPropertyTypeResolvers>
        <contentPickers>
          <!-- Macro Property Types, that store Content IDs, to link to media or content -->
          <add key="Media Current">mediaCurrent</add>
          <add key="Content Subs">contentSubs</add>
          <add key="Content Random">contentRandom</add>
          <add key="Content picker">contentPicker</add>
          <add key="Content tree">contentTree</add>
          <add key="Content All">contentAll</add>
        </contentPickers>
      </macroPropertyTypeResolvers>
      <resources>
        <!-- files which should not added at any time-->
        <ignore>
          <add>/bin/*.pdb</add>
          <add>/bin/*.xml</add>
          <add>/bin/AjaxControlToolkit.dll</add>
          <add>/bin/Antlr3.Runtime.dll</add>
          <add>/bin/App_Browsers.dll</add>
          <add>/bin/App_global.asax.dll</add>
          <add>/bin/businesslogic.dll</add>
          <add>/bin/Castle.*</add>
          <add>/bin/ClientDependency.Core.dll</add>
          <add>/bin/cms.dll</add>
          <add>/bin/controls.dll</add>
          <add>/bin/CookComputing.XmlRpcV2.dll</add>
          <add>/bin/Examine.dll</add>
          <add>/bin/FluentNHibernate.dll</add>
          <add>/bin/htmlagilitypack.dll</add>
          <add>/bin/ICSharpCode.SharpZipLib.dll</add>
          <add>/bin/interfaces.dll</add>
          <add>/bin/Iron*.dll</add>
          <add>/bin/log4net.dll</add>
          <add>/bin/Lucene.Net.dll</add>
          <add>/bin/Microsoft.*.dll</add>
          <add>/bin/MySql.Data.dll</add>
          <add>/bin/NHibernate.*</add>
          <add>/bin/RazorEngine.*.dll</add>
          <add>/bin/System.Web.*</add>
          <add>/bin/TidyNet.dll</add>
          <add>/bin/Umbraco.Courier.*</add>
          <add>/bin/umbraco.DataLayer.dll</add>
          <add>/bin/UrlRewritingNet.UrlRewriter.dll</add>
          <add>/bin/umbraco.dll</add>
        </ignore>
      </resources>
      <!-- which types of relations should be supported by courier -->
      <!-- Relations are only supported between content and media out of the box -->
      <relations>
        <add>relateOnCopy</add>
        <!-- <add></add> -->
      </relations>
    </configuration>
  • Per Ploug 865 posts 3491 karma points MVP admin
    Jan 15, 2013 @ 14:15
    Per Ploug
    0

    Hi Martin

    Thanks for that additional details, I'll setup a dublicate enviroment and try to reproduce and then fix, appreciate the time you put into providing this

    /Per

  • Per Ploug 865 posts 3491 karma points MVP admin
    Jan 16, 2013 @ 13:25
    Per Ploug
    0

    Okey, got the issue fixed, its in the latest nightly, which also fixes the 0 byte file issue and the published document drafts documents issues:

    http://nightly.umbraco.org/UmbracoCourier/2.7.4/nightly%20builds/

  • Martin Griffiths 826 posts 1269 karma points c-trib
    Jan 16, 2013 @ 15:19
    Martin Griffiths
    0

    Hi Per

    Thats great news! I'll give it a try.

    On the subject of fixes, would it be possible to have some kind of differentiation between nightly builds and releases? I've had no idea what is considered "production safe".

    To date I've just kept up with the nightlies, but it would be good to know when a build is considered "released" rather than ongoing/unstable.

    Thanks

    Martin

  • Martin Griffiths 826 posts 1269 karma points c-trib
    Jan 16, 2013 @ 15:21
    Martin Griffiths
    0

    Per..

    Tim Geyssens has kept this relatively simple in Contour by labelling builds as WIP for ongoing work.

    Martin

  • Per Ploug 865 posts 3491 karma points MVP admin
    Jan 16, 2013 @ 16:07
    Per Ploug
    0

    Hi Martin

    Yeah, its a good point that WIP should be better labelled, will get this in to my routine in future releases. However, anything that is considered an official release goes onto the courier project page, but that aint the most transparent way tho, so WIP labels is to be prefered for sure.

    /per

  • Martin Griffiths 826 posts 1269 karma points c-trib
    Jan 17, 2013 @ 12:27
    Martin Griffiths
    0

    Hi Per

    I tested your latest build this morning. It's half way fixed!

    The assets transferred into the media section ok, but they are just in the root rather than inside their original folder, called "test". Please see my screen shots from earlier.

    Here's what it looks like on live...

  • Jason Rendel 10 posts 30 karma points
    Feb 13, 2013 @ 18:01
    Jason Rendel
    0

    I'm going to go ahead and say here here on this one.  Looking at the form posts of late there are two pages of posts with one resolved.  There is no escalation for production issues and the zendesk policy seems to be close issues and ask questions later.  This has me thinking the umbraco/courier model is not something I want to put 30 client sites on.  The issue then is who does it realy affect?  

    The money has already been spent on courier so what leverage do I have when the support is so lacking?  There is no leverage, so you get no support.

  • Richard Barg 358 posts 532 karma points
    Feb 13, 2013 @ 19:15
    Richard Barg
    0

    What is the "Zendesk" policy,

    I also want to add that Per seems to posting quite frequently on this thread of late. He has acknowledged that Courier might have been lagging in the past in support and now is trying to rectify that.

    I think its only  fair to give him a chance.

     

     

  • Jason Rendel 10 posts 30 karma points
    Feb 13, 2013 @ 19:27
    Jason Rendel
    0

    Tickets are posted and managed on a zendesk hosted portal.  By policy I mean standard procedure.  On my issue the rep offered two sentences and marked the ticket closed.

  • James Drever 118 posts 149 karma points
    Feb 14, 2013 @ 14:56
    James Drever
    1

    Can I just add to this thread that while - as some on here have experienced & as Per has acknowledged - support for Courier has been a bit intermitent lately and I can absolutely understand the frustrations expressed, I've had some absolutely fantastic support for Courier from Per and Umbraco HQ in the past, and I'm sure that will continue in the future.. 

  • Martin Griffiths 826 posts 1269 karma points c-trib
    Feb 14, 2013 @ 15:29
    Martin Griffiths
    0

    Hi James

    Overall I've found if I cannot get answers from core team members the forums are more than enough to get me through, this is the joy of open source and a strong community.

    My beef is that Contour & Courier are paid for products and I would expect a higher quality of support as a result.

    In recent months I've worked on a daily basis with Tim Geyssens on Contour (more specifically CodeFirst) to get bugs ironed out. His willingness to respond rapidly to concerns has been nothing short of life saving for me, as we were mid-project at the time.

    In comparison i've had to resort to modifying the source code of Umbraco to allow us to continue with Courier 1.3 while keeping our older Umbraco projects on the upgrade path. I've successfully upgraded our main corp. websites from 4.0.4.2 to 4.7.2 and i'll continue to upgrade them to 6.0/MVC this year. But courier 2 continues to be omitted as we lack the confidence it can be used reliably in our production environments. Also Courier 2 doesnt work properly in Umbraco 6 either.

    I would argue that these two products are so crucial to the continued success of Umbraco, major CMS releases should be held back until they're verified as working correctly with their companions. But of course, that would require confidence in the companion products in the first place....something I dont currently hold for Courier.

    I have gone through my issues with Per and Courier and I do hope they will be ironed out very soon. But better communication (and documentation) is required here. 

    Martin

     

  • James Drever 118 posts 149 karma points
    Feb 14, 2013 @ 15:43
    James Drever
    0

    Hi Martin!  wasn't intending to take anything away from your experiences - can really understand your frustrations with Courier!  Indeed, have a couple of my own!  And you're right - in my mind too Courier is absolutely key to Umbraco's future development - I'm certainly very dependent on it (we DO use 2.x) and I'm very mindful of that & keen that that dependence is recognised at HQ. I'm just wanting to highlight that support for Courier has been in my experience really really good up until quite recently - and expressing the hope that it will be again!  Really hope your issues get sorted! James.

  • Martin Griffiths 826 posts 1269 karma points c-trib
    Feb 14, 2013 @ 16:07
    Martin Griffiths
    0

    Hi James

    That's ok, no offence taken in your comments! :-)

    How long have you been using Courier 2 in a production environment? What version of Courier are you using and what version of Umbraco?

    We've very recently put together a very small test build for a few clients, which until last week I managed to get up to v6 of Umbraco. Unfortunately I had to roll back to 4.11.4 as Courier 2 fell flat on its face. Contour also gave me a few problems but I have forged such a good rapport with Tim Geyssens, he had the problems nailed in less than a day!

    In our test build i've been tentatively keeping up-to-date with the courier nightlies,  but I still notice it doing odd things. Stuff like transferring more than one node, when you only asked it to transfer one node, for example.

    The great many exceptions that plagued versions prior to 2.7 have mostly gone away, but i'm concerned that if I attempt to use it on one of our more complex builds.....i'll be back in a world of pain again.

    Your feedback would be appreciated.

    Martin

     

  • James Drever 118 posts 149 karma points
    Feb 14, 2013 @ 17:11
    James Drever
    0

    Hi Martin,

    I've been using Courier 2 more or less since it came out.  I've seen it improve massively - Courier 2.0 was very tempermental and I used it very sparingly in production.  2.5 greatly improved things - I did quite a bit of testing/gave quite a lot of feedback to Per - and he was incredibly responsive and helpful throughout that period.  We've got a fair-size Umbraco site (about 200 doc types, over 5,000 content nodes) and I use Courier to regularly deploy updates from dev > staging > production. I try to deploy little & often - for a number of reasons - but it probably suits Courier to not have massive changes being deployed.   I'd say most of the time it works - I'd love it to be even more robust.  But worst-case for me so far is that I have to go back and manually deploy some  missing elements.

    I guess I'm thinking that Courier, despite issues, is the best option I have for deployment.  If you use Courier 1, how do you deploy doc types/templates etc?

    Right at the moment I'm a bit stuck with the latest 2.7.4 nightlies - I really need to be able to right click deploy without it deploying truck loads of other dependencies - hopefully the option to choose dependency level will be reinstated ASAP.  And I also really want to move to Umbraco 6.x and Courier's lack of compatability is holding me back - but I understand from Per that its really not far off.  

    James.

  • Martin Griffiths 826 posts 1269 karma points c-trib
    Feb 14, 2013 @ 17:42
    Martin Griffiths
    0

    Hi James

    I was initially very pleased when Courier 2 came out, it was a completely new product which offered features useful to editors and developers alike. Courier 1 wasn't without it's own unique set of issues, but we'd learned to live with them!

    We decided to upgrade our corp sites to Umbraco 4.5 / new XML schema last year, it was a pretty painful exercise which resulted in mass tidy up of XSLT, so I was looking forward at the end to all of the benefits that were being advertised in Courier 2. However upon install, things went really badly, the product fell over more times than a small child and we were left in a situation where we couldn't roll the upgrade out. Luckily I found a forum post on how to tweak the Umbraco source to get Courier 1.x working in 4.5 and higher. Since then i've continued to upgrade our corporate websites with no further issues as long as I rebuild one of the core dlls with my fix.

    Our corporate websites don't change structurally much at all, so we rarely need to change doctypes or templates. I guess it's proof our sites were initially well thought out in the beginning. When changes have been required I simply manually recreate the changes on staging, in live. After that editors can continue to transfer content in Courier as normal.

    I wont bother testing Courier 2 on our corporate websites until i'm confident it's working properly on our mini project, there's just too much at stake on those sites.

    For now I'll keep plugging in the nightlies on to our mini project and hopefully by the time I see the first bugfixed 6.0.1 i'll be feeling a bit more confident about Courier....we'll see! :-)

    Martin

  • Per Ploug 865 posts 3491 karma points MVP admin
    Feb 15, 2013 @ 11:37
    Per Ploug
    0

    Martin, I know you have had your fair share of bugs in Courier, but I also need to make clear that you cannot really compare the process of fixing a bug in Contour, compared to fixing an issue in Courier. As we developed Contour, it was decided to make it depend on its own closed system, so no matter what went on the umbraco side of things, the core of contour would still work, so it is not affected by changing database schemas, new datatypes, 3rd party components or refactored publishing routines, but courier is. 

    So yes, courier cannot progress as fast, I cannot just push out fixes in an hour, it is simply too complex. 

    Bugs reported by you are being fixed, I dont ignore them, but I cant move as fast as tim can with Contour, its a different product. 

    In regards to HQ priorities in regards to Courier, then Courier is one of the key elements in how we see Umbraco will work in the future, as its one of the main parts of Concorde, so we have a very high stake in courier ourselves as well. 

  • Martin Griffiths 826 posts 1269 karma points c-trib
    Feb 15, 2013 @ 12:00
    Martin Griffiths
    0

    Hi Per

    A fair point made that us end users may not have not realised (me specifically). I see both Contour and Courier as complex products but their dependencies are not obvious. So you're basically saying during core code changes, Contour can largely continue with minimal or even no change, whereas Courier cannot! Hmm!

    If this is the case could you folks at HQ take a longer look at how Courier is developed in relation to the core? Otherwise surely you're going to be spending more valuable time playing catch up than on new features? Also new features in Courier could be jeopordised due to on-going changes in the umbraco codebase. It's all starting to sound a bit like spaghetti!?!

    Was all the work done from version 2.0 to 2.7 mostly down to changes in the Umbraco core, or was it down to problems with the underlying technology in your closed system? The amount of time passed between 2.0 and 2.7 has been very long, and until very recently I can say the product is starting to feel solid.

    I'm sorry if this is starting to sound like a rant, but i'm very interested. If it wasnt for the fact that i'm passionate about the Umbraco CMS, I probably wouldnt go on about it as much! LOL!

    Kind regards

    Martin

     

  • Per Ploug 865 posts 3491 karma points MVP admin
    Feb 21, 2013 @ 10:51
    Per Ploug
    0

    dont see it as rant, so dont worry :)

    So first of all

    If this is the case could you folks at HQ take a longer look at how Courier is developed in relation to the core? Otherwise surely you're going to be spending more valuable time playing catch up than on new features? Also new features in Courier could be jeopordised due to on-going changes in the umbraco codebase. It's all starting to sound a bit like spaghetti!?

    That is the nature of courier, it moves features in the core between environments, so it is very very dependant on what is going into the core. And ofcourse, there is a bit of history of why it is like this:

    When developement of courier 2 started, it was apparent that we could not use the build-in apis and datalayer in V4, we would need to refactor huge parts of it support that it could run without a httpcontext, and that it could fully run a deploy in a safe transaction. Due to the way the api and dataaccess was made in V4, it would mean we would have to rewrite more or less the entire core. 

    We didnt want to do that, because at the time, V5 was already started, and it was already decided that a new database schema would be used for that (with nhibernate as ORM) 

    So we decided the best way to support transactions and httpcontext-less access, would be to write a courier-specific datalayer for V4, in nhibernate, that way we could later just plug in the V5 nhibernate layer and have a smooth-ish transition to V5. (I actually even have some POC code that allows you to transfer data between a V4 and V5 instance) 

    So you could say, the nhibernate layer in courier was always considered a temporary thing, that we long-term could migrate to fully run on the same layer as V5 so we didnt have to maintain 2 layers at once, but as we all know that plan didnt really work out as it should, so here we are :)

    -----

    Longterm we dont want to maintain this nhibernate layer, so a longer running project is to migrate to the same peta-poco layer as V6 uses, but this will take time to do, so in the meantime I'm patching up any database-schema changes in the NH layer, not perfect, but the V6 changes are the first ones since 4.5 I think.

    ----

    So what was the time between 2.0 and 2.7 used on?
    well, for one: testing and exploring the dark and horrible world of how many different ways you can use umbraco, install database schemas, have half-way upgraded systems, different paths to macros, different syntaxes for macro references, different ways of storing versions, null values, constraints, relations and so on and ooooon. When you look at umbraco installs, you might think they are fairly identical in terms of the underlying data and files, well you wroooong. There are some many variants of the how things are stored/done/changed that my head hurts thinking about it, so tweaking and taking those variations into account took a looong time. 

    Secondly, there was added a taskmanager so things happened in the background and in parallel, more robust apis, more robust dependency tracking, ongoing compare between sites during packaging, nant-support, support for all the uComponents datatypes, support for Damp, contour support, and support for various other 3rd party datatypes.

    Oh and also spend alot of time getting courier to run on V5 :)

    Also, during the time between 2.0 and 2.7 the core also changed, the database had better constraints and keys,so it has become easier to manager data, but still, I wish we didnt have that extra nhibernate link.

    ----

    So thats the history, its really just a classic tale of heavy technical debt, and plans not working out as they should, leaving you in a harder spot then planned. 

     

  • Martin Griffiths 826 posts 1269 karma points c-trib
    Feb 21, 2013 @ 13:09
    Martin Griffiths
    0

    Hi Per

    A fantastic reply! It's a great insight into your world, which clearly has been a difficult one!

    So with version 6 taking hold containing a great many features of v5 (hopefully without the performance problems) and a new set of APIs too, will it make things easier for you to on-develop Courier? Do you now have a more "known" development path you can follow? 

    I hope that some of the technical debt will soon become redundant for you and set you free somewhat.

    I'll keep going on the nightlies, they're improving all the time.

    Kind regards

    Martin

Please Sign in or register to post replies

Write your reply to:

Draft